Forty-five Django

 

1、路由层

  1、路由层简单配置:URL配置就像Django所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表,

你就是以这种方式告诉Django,对于客户端发来的某个URL调用哪段逻辑代码对应执行。

urlpatterns = [
    path('admin/', admin.site.urls),
    path('login/', views.login),
    url(r'^articles/2003/$', views.article_2003),
    url(r'^articles/[0-9]{4}/$', views.article_year),
    url(r'^articles/(?P<year>[0-9]{4})/$', views.article_year),   # 有名分组
    #re_path 等同于url,path不能用正则
]
# 注意:视图函数的形参,必须要跟有名分组的名称同名(顺序没有关系)
    URL有几个分组,就必须接收几个参数
# URL:自己定制匹配规则
# path:自动带开头和结尾匹配规则,include,自动去掉后面的$,进行URL拼接
# re_path:等同于re_path

  2、路由分发

from django.conf.urls import url  # 运用django1版本的URL
from django.urls import path, re_path, include
urlpatterns = [
    url(r'^app01/', include("app01.urls")),
    url(r'^app02/', include("app02.urls"))

]
#include 包括函数,包括其下级URL
#项目顶级URL,结尾不要加$
#include参数字符串路径,必须要写正确
# 每个APP应用里面新建urls.py 文件
from django.conf.urls import url
from app01 import views

urlpatterns = [
    url(r'^login/$', views.login)
]

 

2、视图层 views

# request 对象
# 1、属性
    request.GET    #获取以GET请求方式,提交数据
        request.GET.get("key")    # 推荐写法
        request.GET.getlist("key")    # 返回一个多值的列表
        request.GET["key"]    # 不推荐,会报错
    request.POST    # 获取以POST请求方式提交的数据,得到类似字典(QueryDict)
        request.POST.get("key")    # 推荐写法
        同上
        同上
    request.body    # 请求体相关内容,原生的字节
    request.path    # 获取URL路径,没有IP和端口
    request.method    # 获取请求方式,大写
# 2、方法:
    get_full_path()    # 获取URL的完整路径
    is_ajax()    # 返回布尔值,判断当前请求是否是ajax
# HTTPResponse 对象
    HttpResponse("想要显示的内容")    # 直接把内容返回给页面
    render(request, "模板名称", [可选参数])    # 把内容及渲染等返回页面
    redirect("要跳转的URL地址")    # 直接跳转指定地址

3、模板层

# 以下是在HTML 里写,由views return 反射过去
# 变量语法
{{ name }}
# 过滤器    {{obj|filter_name:param}}    模板
 {{aaa|default:404}}    # 设置默认值,两个参数
length    # 获取长度,只需一个参数|前
filesizeformat    # 格式化文件尺寸,只需一个参数|前
date:"Y-m-d"    # 格式化是日期,一个参数
truncatechars    # 截取字符串,两个参数,后面截取长度如果过长默认用...占3个位置
safe    # 让字符串变成代码执行
# 标签    以下是在HTML 下编写
for 标签
    遍历每个元素,展示数据
if 标签
    判断,从而影响,页面展示效果
with 标签
    定义一个中间变量
csrf_token 标签
    用于跨站请求伪造保护
#  自定义过滤器和标签
# 1. 在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的        simple_tag.
# 2. 在app中创建templatetags模块(模块名只能是templatetags)
# 3. 创建任意 .py 文件
# 4. 在使用自定义simple_tag和filter的html文件中导入之前创建的 my_tags.py
# 5. 如何使用
{% load my_tags %}  
      
{% load my_tags %}

{{ li.0|filter_multi:li.1 }}

{% simple_tag_multi li.0 li.1 v3=li.2 %}

<p>{% my_input 3 "aaa" %}</p>
# 注意:filter可以用在if等语句后,simple_tag不可以
# 薄弱

 

posted @ 2019-03-13 20:17  pythonernoob  阅读(174)  评论(0)    收藏  举报