" name="sm-site-verification"/>
侧边栏壁纸
博主头像
PySuper 博主等级

千里之行,始于足下

  • 累计撰写 206 篇文章
  • 累计创建 14 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录
Web

Django 必会配置(二)

PySuper
2019-10-24 / 0 评论 / 0 点赞 / 29 阅读 / 0 字
温馨提示:
本文最后更新于2024-05-28,若内容或图片失效,请留言反馈。 所有牛逼的人都有一段苦逼的岁月。 但是你只要像SB一样去坚持,终将牛逼!!! ✊✊✊

类视图

  • 代码可读性好
  • 类视图相对于函数视图有更⾼的复⽤性
from django.views.generic import View


class RegisterView(View):
    """类视图:处理注册"""

    def get(self, request):
        """处理GET请求,返回注册⻚⾯"""
        return render(request, 'register.html')

    def post(self, request):
        """处理POST请求,实现注册逻辑"""
        return HttpResponse('这⾥实现注册逻辑')

urls

  • 定义类视图需要继承⾃Django提供的⽗类View
  • 可使⽤ from django.views.generic import View 或者 fromdjango.views.generic.base import View 导⼊
urlpatterns = [
    # 视图函数:注册
    # url(r'^register/$', views.register, name='register'),
    # 类视图:注册
    url(r'^register/$', views.RegisterView.as_view(), name='register'),
]

中间件

  • 定义⼀个中间件⼯⼚函数,然后返回⼀个可以别调⽤的中间件
  • 中间件⼯⼚函数需要接收⼀个可以调⽤的get_response对象
  • 返回的中间件也是⼀个可以被调⽤的对象,并且像视图⼀样需要接收⼀个request对象参数,返回⼀个response对象
def simple_middleware(get_response):
    # 此处编写的代码仅在Django第⼀次配置和初始化的时候执⾏⼀次

    def middleware(request):
        # 此处编写的代码会在每个请求处理视图前被调⽤。
        response = get_response(request)

        # 此处编写的代码会在每个请求处理视图之后被调⽤。
        return response
    return middleware
  • 定义好中间件后,需要在settings.py⽂件中添加注册中间件

执行顺序

  • 在请求视图被处理前,中间件由上⾄下依次执⾏
  • 在请求视图被处理后,中间件由下⾄上依次执⾏

模板

模板渲染

from django.shortcuts import render


def index(request):
    context={'city': '北京'}
    return render(request,'index.html',context)

模板语法

  • 变量:{{ 变量 }}
  • for循环
{% for item in items %}
    {{ item }}
{% endfor %}
  • if条件
{% if ... %}
    逻辑一
{% elif ... %}
    逻辑二
{% endif %}
  • 运算符:运算符左右两侧不能紧挨变量或常量,必须有空格
{% if a == 1 %} # 正确
{% if a==1 %} # 错误
  • 过滤器:变量|过滤器:参数

模板继承

  • 父模板
{% block 名称 %}
    预留区域,可以编写默认内容,也可以没有默认内容
{% endblock 名称 %}
  • 子模版
{% extends "⽗模板路径"%}
  • 使用
{% block 名称 %}
    实际填充内容
{{ block.super }}⽤于获取⽗模板中block的内容

{% endblock 名称 %}
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区