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. mysql五大引擎的区别和优劣之分

    数据库引擎介绍 MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEAP.另 ...

  2. Java总结转载,持续更新。。。

    1.Java中内存划分 https://www.cnblogs.com/yanglongbo/p/10981680.html

  3. Codeforces Round #603 (Div. 2) D. Secret Passwords 并查集

    D. Secret Passwords One unknown hacker wants to get the admin's password of AtForces testing system, ...

  4. Filter 原理

    二.Filter 原理 2.1 Filter 概述 Filter(过滤器)是 DirectShow 中最基本的概念.DirectShow 是通过 Filter Graph 来管理 Filter 的.F ...

  5. pytest框架优化——将异常截屏图片加入到allure报告中

    痛点分析: 在做allure定制化的时候,关于附件添加这一块,我们在代码里可以添加我们准备好的附件,这里用图片,通过下面的方法就能实现 allure.attach(file, '图片描述', allu ...

  6. 为什么Redis 单线程却能支撑高并发?

    作者:Draveness 原文:draveness.me/redis-io-multiplexing 推荐阅读 1. Java 性能优化:教你提高代码运行的效率 2. 基于token的多平台身份认证架 ...

  7. jvm 性能调优工具之 jstat

    概述 Jstat是JDK自带的一个轻量级小工具.全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建 ...

  8. Python 内置函数补充匿名函数

    Python3 匿名函数 定义一个函数与变量的定义非常相似,对于有名函数,必须通过变量名访问 def func(x,y,z=1): return x+y+z print(func(1,2,3)) 匿名 ...

  9. springMVC校验器(validator)

    springmvc使用的是Hibernate Validator(和Hibernate的ORM无关)来完成校验功能 一.普通校验 1.导入jar包 2.编写校验错误配置文件 3.配置校验错误信息文件 ...

  10. JavaScript初探 二 (了解数据)

    JavaScript初探 (二) JavaScript 事件 HTML事件 HTML事件是可以在浏览器或用户做的某些事情 HTML事件的例子: HTML网页完成加载 HTML输入字段被修改 HTML按 ...