Django连接与建立数据库
连接MySQL数据库
配置文件
找到DATABASES
对应的设置,修改为MySQL的配置即可
1 2 3 4 5 6 7 8 9 10
| DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'bms', 'USER':'root', 'PASSWORD':'', 'HOST':'127.0.0.1', 'PORT':3306 } }
|
连接数据库
在项目的__init__.py
文件中进行编辑.
用于告诉django
使用pymysql模块代替MySQLdb模块。
1 2 3
| import pymysql pymysql.install_as_MySQLdb()
|
创建数据库
建立模型
创建完项目后,我们进入app
,进入models.py
创建我们的模型(数据库)
1 2 3 4 5 6
| class UserInfo(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=16) age = models.IntegerField() current_date = models.DateField()
|
数据库同步指令
如果没有修改django默认数据库连接,那么会自动生产一个sqlite3的数据库。
第一个指令,创建一个记录。用于告诉django我要创建一个表
1
| python manage.py makemigrations
|
第二个指令,用于执行这个记录。
1
| python manage.py migrate
|
ORM字段与数据库对应关系
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| 'AutoField': 'integer AUTO_INCREMENT', 'BigAutoField': 'bigint AUTO_INCREMENT', 'BinaryField': 'longblob', 'BooleanField': 'bool', 'CharField': 'varchar(%(max_length)s)', 'CommaSeparatedIntegerField': 'varchar(%(max_length)s)', 'DateField': 'date', 'DateTimeField': 'datetime', 'DecimalField': 'numeric(%(max_digits)s, %(decimal_places)s)', 'DurationField': 'bigint', 'FileField': 'varchar(%(max_length)s)', 'FilePathField': 'varchar(%(max_length)s)', 'FloatField': 'double precision', 'IntegerField': 'integer', 'BigIntegerField': 'bigint', 'IPAddressField': 'char(15)', 'GenericIPAddressField': 'char(39)', 'NullBooleanField': 'bool', 'OneToOneField': 'integer', 'PositiveIntegerField': 'integer UNSIGNED', 'PositiveSmallIntegerField': 'smallint UNSIGNED', 'SlugField': 'varchar(%(max_length)s)', 'SmallIntegerField': 'smallint', 'TextField': 'longtext', 'TimeField': 'time', 'UUIDField': 'char(32)',
|