Django开发操作数据库更简单,内部提供了ORM框架
一、安装第三方模块
pip install mysqlclient
注:最新的django框架需要使用mysqlclient模块,之前pymysql模块与django框架有编码兼容问题。
二、ORM
1、ORM可以帮助我们做两件事:
创建、修改、删除数据库中的表(不用写sql语句)(没有办法创建数据库)。
操作表中的数据(不用写sql语句)
2、创建数据库
2.1、启动Mysql服务
2.2、创建数据库
create database 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#操作数据库指令
#登录
mysql -u root(mysql用户名) -p
#查看数据库
show databases;
三、Django连接数据库
在setting.py文件中进行配置和修改
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.mysql',
'NAME': 'index_day', # 数据库
'USER': 'root',
'PASSWORD': '12345678',
'HOST': '127.0.0.1', # mysql那台机器的ip
'PORT': '3306',
}
}
四、Django操作表
1、创建表(models.py文件中操作)
from django.db import mmodels
class UserInfo(models.Model):
name=models.CharFIeld(max_length=32)
password=models.CharFIeld(max_length=64)
age=models.IntegerFIeld()
"""
上面类等于以下sql语句
cerate table app项目名_userinfo(
id bigint auto_increment primary key,
name varchar(32),
password varchar(64),
age int
"""
完成以上,需要执行以下命令,生成表(app需要提前注册)
python manage.py makemigrations
python manage.py migrate
2、删除表
from django.db import mmodels
class UserInfo(models.Model):
name=models.CharFIeld(max_length=32)
password=models.CharFIeld(max_length=64)
#age=models.IntegerFIeld()
注:只要把对应的类或者字段注销或者删除,在执行以下
python manage.py makemigrations
python manage.py migrate
3、修改表
注:在修改表,添加字段如果表本身有数据,需要默认值,或者设置默认可以为空。
如果类里面,字段不设置默认值,在执行命令行代码时也会提示,属于默认值或者退出
from django.db import mmodels
class UserInfo(models.Model):
name=models.CharFIeld(max_length=32)
password=models.CharFIeld(max_length=64)
#age=models.IntegerFIeld()
data=models.IntegerField(defaul=2)#新字段默认为值为2
content=models.IntegerField(null=True,blank=True)#新字段默认为值为空
再次执行该命令:
python manage.py makemigrations
python manage.py migrate
五、总结:
在以后的开发中如果想要对表结构进行调整:
在models.py文件中操作类就可以了
在执行命令:
python manage.py makemigrations
python manage.py migrate