博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
orm介绍
阅读量:5051 次
发布时间:2019-06-12

本文共 1787 字,大约阅读时间需要 5 分钟。

一-    ①orm数据库创建,需要在models里面定义好要建的表,

  ②在app01项目下的__init__.py文件内写入

          import pymysql
          pymysql.install_as_MySQLdb()

  ③在pycharm控制台依次输入一下语句,如果没有app01(项目)则需创建并在settings内配置

        python3 manage.py makemigrations
        只需要敲命令:makemigrations(记录数据库的修改记录)
        python3 manage.py migrate
        只需要敲命令:migrate(把数据同步到数据库)

二- orm能干和不能干的事

  1 能创建数据表,新增,删除字段

  2 不能创建数据库

三- orm增加字段:(注意数据库迁移命令2条)  注意:后来增加的字段,需要有默认值

  方式1:User.objects.create(address='')

  方式2:实例化产生一个user对象,user对象的save方法

四 删除字段  注释掉字段,执行数据库迁移命令

  方式1:User.objects.filter(id=1,name='lqz').first().delete()

  方式2:User.objects.filter(id=1,name='lqz').delete()

五 修改数据  直接修改字段,执行数据库迁移命令

  User.objects.filter(id=1,name='lqz').update()

 

六 增删改查

  1 单表查询所有用户:models.User.objects.all()

    得到的是 queryset对象(当成列表),列表里面,一个一个的对象[user1,user2]

  2 render(request, 'userlist.html', {'user_list': ret})

  3 模板里:   {% for user in user_list %}

          #要循环的内容

          {

{user.name}}

        {% endfor%}

  4 get请求携带参数:

    http://127.0.0.1:8000/deleteuser/?id=1

    后台取值:request.GET.get('id')

         request.GET['id']

  5 orm删除记录 models.User.objects.filter(id=id).delete()

    返回值:影响的行数

  6 前台post提交的数据取值:name=request.POST.get('name')

  7 orm保存:两种方式:

    1 user=models.User.objects.create(name=name,password=pwd,address=addr)

    2 user=models.User(name=name,password=pwd,address=addr)

     user.save()

  8 orm查询单条数据:user=models.User.objects.filter(id=id).first()

  9 orm的修改 models.User.objects.filter(id=id).update(name=name,password=pwd,address=addr)

  前后台交互		

用户名:

密码:

地址:

 七、Django生命周期

八、表的设计

一对多,多对多

  一对多:对多的关系一旦确立,关联字段写在多的一方

  publish=models.ForeignKey(to='Publish', to_field='id')

  多对多:(自动创建第三张表)

  authors = models.ManyToManyField(to='Author')

 

转载于:https://www.cnblogs.com/layerluo/p/9925905.html

你可能感兴趣的文章
蓝桥杯-分小组-java
查看>>
Java基础--面向对象编程1(类与对象)
查看>>
Android Toast
查看>>
iOS开发UI篇—Quartz2D使用(绘制基本图形)
查看>>
docker固定IP地址重启不变
查看>>
[Swift]LeetCode128. 最长连续序列 | Longest Consecutive Sequence
查看>>
[Swift通天遁地]一、超级工具-(9)在地图视图MKMapView中添加支持交互动作的标注图标...
查看>>
js版base64()
查看>>
poj3006---素数筛法
查看>>
c语言结构体排序示例
查看>>
openresty nginx systemtap netdata
查看>>
[Angular] Make a chatbot with DialogFlow
查看>>
sd卡无法启动及zc706更改主频后可以进入uboot无法启动kernel的坑
查看>>
代理模式
查看>>
MongoDB 集合(Collection)对应的物理文件
查看>>
HighCharts绘制图表
查看>>
AWD批量Get_flag
查看>>
8.引用函数
查看>>
Gmail企业级邮箱的outlook配置
查看>>
在 Ubuntu 14.04 中配置 PXE 服务器
查看>>