前言
Django框架下的views,templates
views视图函数的属性方法
http下有两个核心类:HttpResquest类和HttpResponse类
requesr request.path : 当前url访问的路径 request.get_full_path() : url带参数的全路径 request.method : 返回请求的方式,即GET或POST request.POST.get("") / GET.get("") : 得到value redirect redirect(".html") : 跳转html界面,需要导入redirect render render(request,".html",{key:value}) : 渲染templates render(request, ".html", locals()) : 将函数中的所有变量传给模板 render_to_response(".html",{key:value}) : 同render(),不需要request参数,要导入render_to_response
templates模板语法
模板的组成:html代码+逻辑控制语句
变量{{var_name}} {{var_name}} : 用两个大括号来引用变量 {{var_name.1}} : 用变量.下标的形式显示列表 {{var_name.key}} : 用变量.key的形式显示字典,同样可以显示类属性 过滤器{{obj|filter:param}} {{var_name|first}} : 取字符串的第一个 {{var_name|length}} : 取字符串的长度 {{var_name|slice:-1}} : 切片 {{var_name|urlencode}} : 进行url编码 {{var_name|add:50}} : 给变量加上相应的值 {{var_name|addslashes }} : 给变量引号前加入相应的值 {{var_name|capfirst }} : 首字母大写 {{var_name|cut:" " }} : 移除指定的字符 {{var_name|date:"Y-m-d" }} : 自定制时间格式(Y年,m月,d天) {{var_name|default:" " }} : 如果变量没空,返回默认值 {{ name|default_if_none:" " }} : 如果变量为none,返回默认值 {{var_name|safe}} : 如果传递为html语言,并需要别渲染,就要加上safe 标签(tag){% tags %} {% endtags %} {% url ‘‘ %} : 引用路由配置的地址 {% autoescape off %}{% endautoescape %} : 关闭安全机制,直接渲染html语句,同{{var_name|safe}} {% if %} {% elif %} {% else %} {% endif %}: 判断 {%for value in var_name %} {% empty %}{% endfor %} : 遍历,value为值 {{forloop.counter}}显示索引,默认1开始, {{forloop.counter0}默认0开始 {{forloop.revcounter}}倒数 {{forloop.frist}}当第一次遍历为true {% empty %} : 如果为空则进入 { % csrf_token %} : post数据提交安全机制,添加钥匙 {% with simpename = longname%} {% endwith %}: 用简单的名字代替复杂的名字 {% verbatim %} {% endverbatim %}: 禁止render {% load %} : 加载标签库
自定制filter和simple_tag
a、在app中创建templatetags模块
b、创建任意.py文件,如:my_tags.py
from django import template from django.utils.safestring import mark_safe register = template.Library() #register的名字是固定的 @register.filter #装饰器 def fliter_multi(x,y): return y @register.simple_tag def simple_tag_multi(x,y): return x*y
myTag.py
c、在使用自定制simple_tag和filter的gtml文件中导入my_tags.py : {% load my_tags.py%} 顶行写
d、使用filter和simple_tag
{% load myTag %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> {# 传参数只能传一个#} {{ var_name|fliter_multi:l }} {# 不能用在控制语句之中#} {% simple_tag_multi 3 5 %} </body> </html>
index.html
e、在settings中INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag
继承标签extend和添加标签include
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div>父界面</div> <div> {% block content %} {# 这里是子界面 #} {% endblock %} </div> </body> </html>
father.html
{% extends "father.html" %} {# 继承父界面的所有内容 #} {% block content %} {# 子界面内容 #} {% endblock %}
son.html
原文地址:https://www.cnblogs.com/shuzhixia/p/11031001.html
时间: 2024-11-01 09:48:24