orm设计理念
name = models.CharField(max_length = 50)
age = models.IntegerField()
'default': {
'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'NAME': 'blogdb',
}
name = models.CharField(max_length = 50)
age = models.IntegerField()
intime = models.dateField()
object relation map
对象关系映射
数据库的表实体的类一一对应
一对一
一对多
表生成类, 类生成表, orm都可以实现
剥离了select语句
-----------------------------------------
定义类来生成数据库
打开blog/models.py,新建一个student类
from django.db import models
# Create your models here.
class Student(models.Model):
-----
打开website/setting.py
修改DATABASES配置
DATABASES = {
}
----
命令行
cd
C:\Users\valex\Documents\django web\website
manage.py syncdb #django 1.7
manage.py makemigrations #1.9
manage.py migrate #1.9
- migrate: 用于执行迁移动作
- makemigrations: 基于当前的model创建新的迁移策略文件
- sqlmigrate: 显示迁移的SQL语句
这是打开数据库发现已经添加了表blog_student
-----
修改类增加intime属性
...
class Student(models.Model):
...
命令行
manage.py makemigrations
manage.py migrate
然后再sqliteStudio重新连接数据库就可以看见新加的属性
--------------------------------------------------------------------------------
修改数据库以更新类模型
在sqliteStudio中给student 增加字段sex, 并增加新表teacher
在命令行下执行
manage.py inspectdb
manage.py inspectdb > blog/models.py
修改到models.py
-----------------------------------------------------------------------------------
有时候在sqlite中不能同步类模型,先建个空的,再试一下