$Django orm增删改字段、建表 ,单表增删改查,Django请求生命周期

时间:2022-09-01 00:15:45
1 orm介绍
  ORM是什么
  ORM 是 python编程语言后端web框架 Django的核心思想,“Object Relational Mapping”,即对象-关系映射,简称ORM。  一个句话理解就是:创建一个实例对象,用创建它的类名当做数据表名,用创建它的类属性对应数据表的字段,当对这个实例对象操作时,能够对应MySQL语句
  1 tools--->Run manage.py Task
    python3 manage.py makemigrations
    只需要敲命令:makemigrations(记录数据库的修改记录)
    python3 manage.py migrate
    只需要敲命令:migrate(把数据同步到数据库)
 2 orm能干和不能干的事
  1 能创建数据表,新增,删除字段
  2 不能创建数据库
 3 orm增加字段:(注意数据库迁移命令2条)
  注意:后来增加的字段,需要有默认值
  phone=models.CharField(max_length=64,default='120')
 4 orm删除字段
  注释掉字段,执行数据库迁移命令2条
 5 orm修改字段
  直接修改字段,执行数据库迁移命令2条
 6 user单表的数据增删改查
  ***重点****:
  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&c=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)
  
 7 django的请求生命周期
 Django的请求生命周期是指当用户在浏览器上输入url到用户看到网页的这个时间段内,Django后台所发生的事情
 而Django的生命周期内到底发生了什么呢??
 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端
 请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者post,体现在url之中.
 2. url经过Django中的wsgi,再经过Django的中间件,最后url到过路由映射表,在路由中一条一条进行匹配,
 一旦其中一条匹配成功就执行对应的视图函数,后面的路由就不再继续匹配了.
 3.视图函数根据客户端的请求查询相应的数据.返回给Django,然后Django把客户端想要的数据做为一个字符串返回给客户端.
 4. 客户端浏览器接收到返回的数据,经过渲染后显示给用户.
$Django orm增删改字段、建表 ,单表增删改查,Django请求生命周期

随机推荐

  1. C#获取文件MD5字符串

    备注 哈希函数将任意长度的二进制字符串映射为固定长度的小型二进制字符串.加密哈希函数有这样一个属性:在计算不大可能找到散列为相同的值的两个不同的输入:也就是说,两组数据的哈希值仅在对应的数据也匹配时才 ...

  2. java进阶书籍推荐

    第一部分: Java语言篇 1 <Java编程规范>   星级:   适合对象:初级,中级   介绍:作者James Gosling(Java之父),所以这本书我觉得你怎么也得读一下.对基 ...

  3. C&num; 之 读取Word时发生 &OpenCurlyDoubleQuote;拒绝访问” 及 &OpenCurlyDoubleQuote;消息筛选器显示应用程序正在使用中” 异常的处理

    1.Asp.net中建立Microsoft.Office.Interop.Word.Application时出现 “ 拒绝访问 ” 错误 项目中要实现在服务器端打开一个Word模版文件,修改其内容后再 ...

  4. Altium designer 10如何设置标题栏

    一.修改设置 1.执行Design-Document Option,打开文档属性对话框,设置其中title等参数. 2.执行Place-Text String,按TAB键,将Text属性中设置为&qu ...

  5. linux c coding style

    Linux kernel coding style This is a short document describing the preferred coding style for the lin ...

  6. JavaScript速记

    JavaScript常见知识点积累,包括数据类型.数值转换.对象.原型与原型链.作用域与闭包等等,持续整理更新,如有错误请指正,甚是感激 本文链接:JavaScript那些磨人的小妖精 作者:狐狸家的 ...

  7. Win7&plus; 电脑 休眠 自动唤醒

    https://jingyan.baidu.com/article/3ea51489d905df52e71bba6b.html

  8. python作业简单FTP(第七周)

    作业需求: 1. 用户登陆 2. 上传/下载文件 3. 不同用户家目录不同 4. 查看当前目录下文件 5. 充分使用面向对象知识 思路分析: 1.用户登陆保存文件对比用户名密码. 2.上传用json序 ...

  9. Check Box、Radio Button、Combo Box控件使用

    Check Box.Radio Button.Combo Box控件使用 使用控件的方法 1.拖动控件到对话框 2. 定义控件对应的变量(值变量或者控件变量) 3.响应控件各种消息 Check Box ...

  10. 2018&period;06&period;29 洛谷P2890 &lbrack;USACO07OPEN&rsqb;便宜的回文(简单dp)

    P2890 [USACO07OPEN]便宜的回文Cheapest Palindrome 时空限制 1000ms / 128MB 题目描述 Keeping track of all the cows c ...