django sqlite3交互

来源:互联网 发布:mumu模拟器网络连接 编辑:程序博客网 时间:2024/06/06 22:16
orm设计理念
object relation map
对象关系映射

数据库的表实体的类一一对应
一对一  一对多
表生成类, 类生成表, orm都可以实现
剥离了select语句
-----------------------------------------
定义类来生成数据库
打开blog/models.py,新建一个student类

from django.db import models

# Create your models here.
class Student(models.Model):
    name =models.CharField(max_length = 50)
    age =models.IntegerField()
-----
打开website/setting.py  修改DATABASES配置

DATABASES = {
    'default': {
       'ENGINE':'django.db.backends.sqlite3',
       # 'NAME': os.path.join(BASE_DIR,'db.sqlite3'),
       'NAME':'blogdb',
    }
}
----
命令行
cd C:\Users\valex\Documents\djangoweb\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):
    name =models.CharField(max_length = 50)
    age =models.IntegerField()
    intime =models.dateField()
...
命令行
manage.pymakemigrations
manage.py migrate
然后再sqliteStudio重新连接数据库就可以看见新加的属性

--------------------------------------------------------------------------------

修改数据库以更新类模型
在sqliteStudio中给student 增加字段sex, 并增加新表teacher
在命令行下执行
manage.py inspectdb
manage.py inspectdb >blog/models.py
修改到models.py

-----------------------------------------------------------------------------------
有时候在sqlite中不能同步类模型,先建个空的,再试一下





0 0