Django

  1. Django处理一个请求的流程

    1. 在浏览器的地址栏中输入地址,回车,发了一个GET请求

    2. wsgi模块接收了请求,将请求的相关信息封装成request对象

    3. 根据地址找到对应函数

    4. 执行函数获取到返回结果,wsgi模块将结果返回给浏览器

  2. 发请求的途径

    1. 在浏览器的地址栏中输入地址 get请求

    2. a标签 get请求

    3. form表单 get/post

  3. 函数

     def xxxx(reqeust):
      return HttpResponse()

    reqeust:

    reqeust.GET url上携带的参数 ?k1=v1&k2=v2

    reqeust.POST form表单提交POST请求的参数

    request.method 请求方式 GET、POST

    response:

    HttpResponse('字符串') ——》 返回字符串

    render(request,'模板的名字',{}) ——》 返回一个页面

    redirect('地址') ——》 重定向

  4. ORM

     from django.db import models
     ​
     class Publisher(models.Model):
         name = models.CharField(max_length=32)
         
     # 一对多的关系
     class Book(models.Model):
         name = models.CharField(max_length=32)
         pub = models.ForeignKey(to='Publisher',on_delete=None)
         
         def __str__(self):
             return self.name

    查询:

     from app01 import models
     ret = models.Book.objects.all() # QuerySet 对象列表
     for book in ret:
         print(book)
         print(book.name)
         print(book.id)  print(book.pk)
         print(book.pub)  # 所关联的对象
         print(book.pub_id)  # 所关联的对象id
         

    新增

     obj = models.Book.objects.create(name='xxx',pub=出版社的对象)
     obj = models.Book.objects.create(name='xxx',pub_id=出版社的对象id)
     ​
     obj = models.Book(name='xxx',pub_id=出版社的对象id)
     obj.save()

    删除

     models.Book.objects.filter(pk=1).delete()
     models.Book.objects.get(pk=1).delete()

    修改

     models.Book.objects.filter(pk=1).update(name='xxx')
     ​
     obj = models.Book.objects.filter(pk=1).first()
     obj.name = 'xxxx'
     obj.pub_id = 2
     obj.save()
  5. 模板语法

     render(request,'模板的名字',{‘k1’:v1,'books':books}) 
     ​
     {{ k1 }}
     ​
     {% for i in books %}
      {{ forloop.counter }}
      {{ i }}
     ​
     {% endfor %}
     ​
     {% if 条件 %}
      xxx
     {% else %}
      xxxxx
     {% endif %}
         # 查询所有的作者信息
         all_authors = models.Author.objects.all()
         for author in all_authors:
             print(author)
             print(author.name)
             print(author.books,type(author.books))  # 关系管理对象
             print(author.books.all(),type(author.books.all()))  # 所关联的所有的对象

    新增

     book_id = request.POST.getlist('book_id')
     ​
     # 插入数据
     obj = models.Author.objects.create(name=author_name)
     obj.books.set(book_id) # 设置多对多的关系
     ​

cookie

定义:

保存在浏览器本地上一组组键值对

特点:

 1. cookie是由服务器进行设置的
  1. 浏览器保存在本地的

  2. 下次访问时自动携带对应的cookie

Django的操作:

  1. 设置

     response.set_cookie(key,value)   # Set-Cookie: is_login=1; Path=/
     response.set_signed_cookie('is_login','1',salt='xxxx')
  2. 获取

     request.COOKIES #  {} 
     request.COOKIES[key] .get(key)
     request.get_signed_cookie(key,salt='xxxx',default='',max_age=5,path='/')
  3. 删除

     response.delete_cookie(key)  # 设置键值对的值为空 超时时间为0

cookie:的更多相关文章

  1. Cookie:SameSite,防止CSRF攻击

    前言 最近在本地调试时,发现请求接口提示“未登录”,通过分析HTTP请求报文发现未携带登录状态的Cookie: PS:登录状态Cookie名是TEST 再进一步分析,发现Cookie的属性SameSi ...

  2. Cookie:解决HTTP协议无保存状态

    客户端 Cookie会根据从服务器端发送的相应报文内一个叫Set-Cookie的首部字段信息,通知客户端保存Cookie.当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值 ...

  3. Webform:Session、Cookie对象的用法

    Session 优点:1.使用简单,不仅能传递简单数据类型,还能传递对象.  2.数据量大小是不限制的. 缺点:1.在Session变量存储大量的数据会消耗较多的服务器资源. 2.容易丢失. 使用方法 ...

  4. JavaSe:Cookie 管理的API介绍

    CookieManager 在使用HttpURLConnection中,并没有关于Cookie的管理.如果使用Java程序时,怎么管理cookie呢? Cookie案例 1. User Agent - ...

  5. 转:理解Cookie和Session机制

    原文: 理解Cookie和Session机制 摘要: Cookie工作原理 由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份.怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论 ...

  6. 转:JQuery读写Cookie

    Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术.当你浏览某网站时,你硬盘上会生产一个非常小的文本文件,它可以记录你的用户ID.密码.浏览过 ...

  7. JavaWeb学习之转发和重定向、会话技术:cookie、session、验证码实例、URLConnection使用(下载网页)(4)

    1.转发和重定向 HttpServletResponse response 转发: RequestDispatcher dispatcher = request.getRequestDispatche ...

  8. cookie 二:

    本篇随笔从cookie的入门开始,介绍了cookie的设置获取和移除,还有一些小的应用案例:一.设置cookie <script> //设置cookie:function setCooki ...

  9. 客户端的数据来源:QueryString, Form, Cookie Request[]与Request.Params[]

    在ASP.NET编程中,有三个比较常见的来自于客户端的数据来源:QueryString, Form, Cookie . 我们可以在HttpRequest中访问这三大对象. QueryString: 获 ...

随机推荐

  1. leetcode 752. 打开转盘锁

    地址 https://leetcode-cn.com/problems/open-the-lock/ 你有一个带有四个圆形拨轮的转盘锁.每个拨轮都有10个数字: '0', '1', '2', '3', ...

  2. Eviews作时间序列分析的一个实例

    时间序列分析是作时间序列数据预测的一个重要部分,由于此次实验室竞赛也用到了时间序列分析,就在此说一下平稳性分析以及非平稳处理的方法:   1.判断平稳性         1.1平稳性的定义       ...

  3. js scroll事件

    滚动改变头部颜色,当滚动到最顶端头部颜色还原 滚动前 滚动后 代码

  4. 03-模板(过滤器,代码复用,表单,CSRF)

    模块代码复用 在模板中,可能会遇到以下情况: 多个模板具有完全相同的顶部和底部内容 多个模板中具有相同的模板代码内容,但是内容中部分值不一样 多个模板中具有完全相同的 html 代码块内容 像遇到这种 ...

  5. Linux vi文档操作

    使用操作 a 在光标后插入    A 插入行末   i 在光标前插入   I 插入行首 o 向下切换一行 O 向上开一行 dd 删除一整行 x 删除光标后一个字符   X 删除光标前一个字符 shif ...

  6. ASH裸数据dba_hist_active_sess_history的分析

    之前在一则案例<记录一则enq: TX - row lock contention的分析过程>使用过这种方法. 因为最近故障处理经常会用到这类查询进行ASH裸数据的分析,下面以m_ash0 ...

  7. java高并发系列 - 第5天:深入理解进程和线程

    进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.程序是指令.数据及其组织形式的描述,进程是程序的实体. 进程具有的 ...

  8. Spring Boot 2.X整合Spring-cache,让你的网站速度飞起来

    计算机领域有人说过一句名言:“计算机科学领域的任何问题都可以通过增加一个中间层来解决”,今天我们就用Spring-cache给网站添加一层缓存,让你的网站速度飞起来. 本文目录 一.Spring Ca ...

  9. 2018-8-10-win10-uwp-退出程序

    原文:2018-8-10-win10-uwp-退出程序 title author date CreateTime categories win10 uwp 退出程序 lindexi 2018-08-1 ...

  10. 致Python初学者的六点建议

    Python是最容易学习的编程语言之一,其语法近似英语.通常,初学者只会遇到一些小麻烦,如强制缩进.在函数中使用self等. 然而,当开始阅读.复制和编辑他人代码时,麻烦就接踵而至了. 这里,我将解释 ...