2.模型

poll教程第二节

配置

mysite/settings
DATABASE{} engine 用哪种数据库 name 数据存储文件名

其他需要关注的配置:
INSTALLED_APPS django数据库迁移时会检查installed apps中的应用涉及到的类,根据类生成sql。如果模块应用未添加到此配置,那么模块下models.py中定义的类不会生成表。
TIME_ZONE USE_TZ 保持默认

迁移migrate数据库

1.setting.py INSTALLED_APP 插上应用
2.

python manage.py makemigrations polls

根据模块下models.py生成迁移脚本
3.(选做)python manage.py sqlmigration polls 0001 查看sql语句
4.

python manage.py migrate

执行迁移脚本

shell

python manage.py shell

与一般的python交互式解释器,还包含django上下文环境,拥有django相关功能。

orm 操作

1.查询表中所有数据
Question.objects.all() 返回model对应table的所有行
2.插入数据 默认自动提交。

q = Question()
q.save

3.带条件查询
类.objects.filter(列 = 值,列2=值2)
4.模糊匹配 字段后跟表示特殊操作__开头
类.objects.filter(字段__startswith=‘匹配字串’)
5.查询除了filter,也可以get,功能一致
类.objects.get(列=值)
get查询不到报异常 (推荐)filter查询不到返回空结果集
filter返回Queryset及如果集 get返回Question实例
6.类实例相当于表中一行数据,可以调用示例方法

q = Question.objects.get(id=1)

q.放法()
7.反向查询
需求,查询question表中“下周五考试嘛”这个问题对应 的选项,如果是sql,要先select id from question 表 where text =“下周”得到qid,再select*from choice where question_id=qid:
而orm帮我们只需要 q.关联_set.all()。优点省一条查询代码缺点不太好理解。
8.一对多的关系
先把一的一方的表的一行数据get出来,q = Question.objects.get(id=1) 然后反向查询关联创建q.choice_set.create(choice_text=’’)
9. 删除

q = Question.objects.get(id=1)
q.delete()

更多查询语法参考
官方中文文档https://docs.djangoproject.com/zh-hans/2.0/
或百度

注意:orm 框架并非万能,较复杂的数据结构可能报错。可以手动在数据库简历表,不走migrete,只要保证models.py中的定义字段属性与数据库表一致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值