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. 客户端浏览器接收到返回的数据,经过渲染后显示给用户.

随机推荐

  1. 【自适应波束形成】MVDR(Minimum Variance Distortionless Response )笔记

    参考: https://blog.csdn.net/qq_40981790/article/details/80143524 1. MVDR简介(Minimum Variance Distortion ...

  2. poj2559/hdu1506 单调栈经典题

    我实在是太菜了啊啊啊啊啊 到现在连个单调栈都不会啊啊啊 写个经典题 #include<cstdio> #include<algorithm> #include<cstri ...

  3. springboot03-unittest mockmvc单元测试

    整个项目结构: 定义user实体类 package com.mlxs.springboot.dto; import java.util.HashMap; import java.util.Map; / ...

  4. luogu P5112 FZOUTSY

    传送门 毒瘤出题人,卡我常数 如果后缀排序后将两两之间height\(\ge k\)的后缀放在一组,那么每次询问的答案就是\(\sum_{i} \binom{num[i]}{2}\)(num[i]是第 ...

  5. CSS面试复习(三):预处理器、工程化方案、三大框架中的CSS

    一.预处理器 1.介绍 基于CSS的另一种语言.通过工具编译成CSS.添加了很多CSS不具备的特性.能提升CSS文件的组织 2.less嵌套 3 .sass嵌套 4. less变量 5.sass变量 ...

  6. python面向对象和面向过程介绍与区别

    一.面向对象和面向过程的区别: a.面向过程: 1)根据业务逻辑从上到下写代码 2)开发思路是将数据和函数按照执行的逻辑顺序组织在一起 3)分开考虑数据与函数 定义性文字: 面向对象编程(Object ...

  7. Leetcode#169. Majority Element(求众数)

    题目描述 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: [3,2,3] ...

  8. lambda、pair、智能指针及时间函数

    Lambda 表达式 auto f1 = [](int x, int y) { return x + y; };cout << f1(2, 3) << endl; int n ...

  9. 【blog】mysql字段类型datetime和timestamp的区别

    首先 DATETIM和TIMESTAMP类型所占的存储空间不同,前者8个字节,后者4个字节,这样造成的后果是两者能表示的时间范围不同.前者范围为1000-01-01 00:00:00 ~ 9999-1 ...

  10. java SPI & spring factories

    SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制.SPI是一种动态替换发现的机制, 比如有个接口,想运行时动态的给它添加实现,你只需要添加 ...