• cookie:


    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
  • 相关阅读:
    MySQL 优化实施方案
    MySQL Replication 主从复制全方位解决方案
    CentOS 7.X 系统安装及优化
    W25Q32的使用
    Word分栏
    转载:STM32之中断与事件---中断与事件的区别
    常见贴片电阻的分类、功率、封装、标注规则
    导线时延
    重装系统流程
    MFC应用程序向导生成的文件
  • 原文地址:https://www.cnblogs.com/zhang-da/p/12051557.html
Copyright © 2020-2023  润新知