一.连接数据库
ORM,对象关系映射,用来把对象模型表示的对象映射到基于SQL的关系模型数据库结构中去。这样,我们在具体的操作实体对象的时候,就不需要再去和复杂的 SQ L 语句打交道,只需简单的操作实体对象的属性和方法。
我们通过操作Django里的models.py来实现与数据库的交互。
Django连接数据库的配置路径在setting.py里面
这里的sqllite3是Django内置的本地数据库,在实际的项目中我们肯定是要使用更具扩展性的数据库比如mysql。实际上我在做毕设的就是连接的数据库mysql:,不过比较简陋啊,只有几张数据表^ _ ^
我这台新电脑在用msi文件装MySQL的时候老是报错,看了一下网上,好像用msi装数据库的都会报错。先不管了,就用sqllite3凑合一下吧。
一定要记得注册一下app,否则该app下的models.py文件里定义的模型与数据库无法交互
开始连接本地的sqlite数据库
选择到我们当前Django项目下的sqlite3数据库
点Test Connection,要我们下个什么东西,下完之后就连接成功了。然后点击右下角的Apply,然后点OK,连接成功。
同步数据库
然后输入migrate命令,同步数据库
多了很多python自带的表
二.在models.py里创建模型并同步到数据库中
先定义好模型,(class Meta的用法可以自行了解一波)
from django.db import models
# Create your models here.
class Login(models.Model):
#定义一个name字段,字符串格式,长度不超过20
name = models.CharField(max_length=20,verbose_name='姓名')
age = models.IntegerField(default=2)
#内部类,用于定义本模型的一些行为特性
class Meta:
#指定数据库名
db_table = 'login'
# 获取对象列表时,对象的默认排序
ordering = ['id',]
# 对象名字
verbose_name = 'Trump_baby'
然后检测各app下的models.py有没有变动并记录下来,使用命令makemigrations(不会将变动同步到数据库里,同步是migrate命令干的活),如果后面不加应用名,默认检查所有的app(变动记录会放到app下的migrations的文件夹里xxxxinitial.py文件里)
models的变动记录
输入命令 sqlmigrate [appname] 0001 ,将models的变动记录0001initalize.py翻译为sql语句
再输入命令migrate,正式将model变动同步到数据库里
题外话,还可以用一个命令: showmigrations 来查看哪些model变动已经被同步到数据库,哪些变动没有被同步到数据库,前面顶个[x]就代表已经被同步过了,前面如果是[]就代表这个变动还没有被同步到数据库里去。
刷新一下数据库,多了一个数据表
也可以在django_migrations表里查看每个app最新一次的变动