连接MySQL数据库
配置文件
找到DATABASES对应的设置,修改为MySQL的配置即可
DATABASES = {
\'default\': {
\'ENGINE\': \'django.db.backends.mysql\',
\'NAME\':\'bms\', # 要连接的数据库,连接前需要创建好
\'USER\':\'root\', # 连接数据库的用户名
\'PASSWORD\':\'\', # 连接数据库的密码
\'HOST\':\'127.0.0.1\', # 连接主机,默认本级
\'PORT\':3306 # 端口 默认3306
}
}
连接数据库
在项目的__init__.py文件中进行编辑.
用于告诉
django使用pymysql模块代替MySQLdb模块。
import pymysql
pymysql.install_as_MySQLdb()
创建数据库
建立模型
创建完项目后,我们进入app,进入models.py创建我们的模型(数据库)
class UserInfo(models.Model):
# create table userinfo(id int primary key auto_increment,name varchar(16),age int,current_date date)
id = models.AutoField(primary_key=True)#自增字段 且主键
name = models.CharField(max_length=16)
age = models.IntegerField()#整数
current_date = models.DateField()
数据库同步指令
如果没有修改django默认数据库连接,那么会自动生产一个sqlite3的数据库。
第一个指令,创建一个记录。用于告诉django我要创建一个表
python manage.py makemigrations
第二个指令,用于执行这个记录。
python manage.py migrate
ORM字段与数据库对应关系
\'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)\',