在 Django 模板中遍历复杂数据结构的关键是句点字符
在 Django 模板中遍历复杂数据结构的关键是句点字符 ( . )。
实例二 mysit/templates/myhtml2.html修改如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> {{ time.year }}年{{ time.month }}月{{ time.day }}日 </body> </html> mysit/blog/views.py修改如下: from django.shortcuts import render, HttpResponse, redirect import datetime def myhtml2(request): # 方法一 # 获取当前时间对象,有属性.year .month .day 分别获取年月日 # HTML中获取数据 根据 {{ time.year }}年{{ time.month }}月{{ time.day}}日 # time = datetime.datetime.now() # 方法二 # 获取当前时间对象,分别获取年月日添加到列表中 # HTML中获取数据 根据 {{ time.0 }}年{{ time.1 }}月{{ time.2}}日 # time = [ datetime.datetime.now().year, datetime.datetime.now().month, # datetime.datetime.now().day] # 方法三 # 获取当前时间对象,分别获取年月日添加到字典中 # HTML中获取数据 根据 {{ time.year }}年{{ time.month }}月{{ time.day}}日 time = {"year": datetime.datetime.now().year, "month": datetime.datetime.now().month, "day": datetime.datetime.now().day} return render(request, "myhtml2.html", locals()) 所以在模板语言中句点(.)可以获取任意对象的任意属性 变量过滤器 # 语法格式: {{obj|filter:param}} # value1 = "aBcDe" # HTML代码: value1|upper # 执行结果: ABCDE # value3 = 'he llo wo r ld' # HTML代码: value3|cut:'he' # 执行结果: llo wo r ld # date 格式化日期字符串 # value4 = datetime.datetime.now() # HTML代码: value4|date:'Y-m-d' # 执行结果: 2016-11-29 # value5 = [] # HTML代码: value5|default:'空的' # 执行结果: 空的 # value6 = '<a href="#">跳转</a>' # HTML代码: value6|safe # 执行结果: 跳转 # HTML代码: value6|striptags # 执行结果: 跳转 # value7 = '1234' # HTML代码: value7 | filesizeformat # 执行结果: 1.2 KB # HTML代码: value7 | first # 执行结果: 1 # HTML代码: value7 | length # 执行结果: 4 # HTML代码: value7 | slice: ":-1" # 执行结果: 123 # value8 = 'http://www.baidu.com/?a=1&b=3' # HTML代码: value8|urlencode # 执行结果: http%3A//www.baidu.com/%3Fa%3D1%26b%3D3 模板标签 标签(tag)的使用(使用大括号和百分比的组合来表示使用tag) {% tag %} ------------------------{%url "name" %}:引用路由配置的地址 <form action="{% url "aaa"%}" > #代表该表单提交的数据会交给 urls.py中 别名为 “aaa” 所对应的视图函数去执行 <input type="text"> <input type="submit"value="提交"> {%csrf_token%} </form> ------------------------{%csrf_token%}:用于生成csrf_token的标签,用于防治跨站攻击验证。注意如果你在视图函数中用的是render_to_response返回页面的方法,则该标签不会生效
其实,这里是会生成一个input标签,和其他表单标签一起提交给后台的。
实例三
在实例一的基础上
mysit/templates/myhtml2.html修改如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action={% url "aaa" %} method="post"> # 在urls.py中找到别名为“aaa”所对应的函数提交数据 <input type="submit"> </form> </body> </html> mysit/blog/urls.py from django.conf.urls import url from blog import views urlpatterns = [ url(r'index2/$', views.myhtml2, name="aaa"), # 所有blog开头的网址都会找到该py 网址最后是index2881064151 则对应views.myhtml2函数,提交表单,因为其别名为aaa,所以提交表单时执行views.myhtml2函数 ]
运行,点击提交按钮你会发现以下错误
Forbidden (403) CSRF verification failed. Request aborted. Help Reason given for failure: CSRF token missing or incorrect. In general, this can occur when there is a genuine Cross Site Request Forgery, or when Django's CSRF mechanism has not been used correctly. For POST forms, you need to ensure: Your browser is accepting cookies. The view function passes a request to the template's render method. In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL. If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as well as those that accept the POST data. The form has a valid CSRF token. After logging in in another browser tab or hitting the back button after a login, you may need to reload the page with the form, because the token is rotated after a login. You're seeing the help section of this page because you have DEBUG = True in your Django settings file. Change that to False, and only the initial error message will be displayed. You can customize this page using the CSRF_FAILURE_VIEW setting.
在 Django 模板中遍历复杂数据结构的关键是句点字符的更多相关文章
- django 模板中定义临时列表
<ul class="num_t clr"> {% for obj in ""|ljust:"10" %} <li> ...
- Django 模板中引用静态资源(js,css等)
Django 模板中免不了要用到一些js和CSS文件,查了很多网页,被弄得略晕乎,还是官网靠谱,给个链接大家可以自己看英文的. https://docs.djangoproject.com/en/1. ...
- Django 模板中使用css, javascript
Django 模板中使用css, javascript (r'^css/(?Ppath.*)$', 'django.views.static.serve', {'document_root': '/v ...
- django模板中的extends和include使用方法
一.extends使用方法 首先extends也就是继承,子类继承父类的一些特性.在django模板中通过继承可以减少重复代码. 首先我们建立一个app,名字叫做hello.别忘了在settings. ...
- django模板中变更数据库信息后,如何把变更后的信息同步更新到数据库
我们在基于django开发项目的过程中,经常会遇到数据库表字段增加,删除,或者修改的情况,以及字段属性更改的情况,因为django基于ORM模式来操作数据库的, 传统上如果django项目中的数据库m ...
- 测试开发之Django——No6.Django模板中的标签语言
模板中的标签语言 1.if/else {% if %} 标签检查(evaluate)一个变量,如果这个变量为真(即:变量存在,非空,不是布尔值假),系统会显示在{% if %} 和 {% endi ...
- Django 模板中 变量 过滤器的使用方法
一.变量 1.变量的形式是:{{variable}}, 当模板引擎碰到变量的时候,引擎使用变量的值代替变量. 2.使用dot(.)能够访问变量的属性 3.当模板引擎碰到dot的 ...
- Django 模板中 变量 过滤器 标签 的使用方法
一.变量 1.变量的形式是:{{variable}}, 当模板引擎碰到变量的时候,引擎使用变量的值代替变量. 2.使用dot(.)能够访问变量的属性 3.当模板引擎碰到dot的 ...
- django 模板中url的处理
在模板中直接添加‘/home’这样的链接是十分不推荐的,因为这是一个相对的链接,在不同网页中打开可能会返回不一样的结果. 所以推荐的是 <a href="{{ object.get_a ...
随机推荐
- Linux环境变量设置指南
以配置java环境变量为例 目录 [隐藏] 1 修改/etc/profile文件 2 修改用户目录下的.bash_profile 3 修改.bashrc文件 4 直接在shell下设置 5 查看环境 ...
- AndroidTips:selector的disable状态为什么无效?
正确的姿势: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android=& ...
- AOP动态代理解析5-cglib代理的实现
CGLIB是一个强大的高性能的代码生成包.它广泛地被许多AOP的框架使用,例如Spring AOP和dynaop,为他们提供方法的Interception(拦截).EasyMock和jMock是通过使 ...
- SPOJ DISUBSTR 后缀数组
题目链接:http://www.spoj.com/problems/DISUBSTR/en/ 题意:给定一个字符串,求不相同的子串个数. 思路:直接根据09年oi论文<<后缀数组——出来字 ...
- 分享Kali Linux 2016.2第46周虚拟机
分享Kali Linux 2016.2第46周虚拟机该虚拟机使用Kali Linux 2016.2第46周的64位镜像安装.桌面为Gnome模式.该虚拟机配置如下:(1)支持VMWare 9以上的版本 ...
- IComparer 指定排序。
public class NeEntityComparer : IComparer<NeEntity> { public int Compare(NeEntity x, NeEntity ...
- 多级下拉菜单zz
MultiLevelMultiSelectCombo (Silverlight) Tharindu Nishad Patikirikorala, 14 Aug 2013 CPOL 5.00 (1 vo ...
- HDU5735 : Born Slippy
考虑DP,设$f[x]$表示最后一个是$x$时的最优解,则$f[x]=\max(f[y]+w[x]\ opt\ w[y])$,其中$y$是$x$的祖先. 注意到$w[i]<2^{16}$,那么将 ...
- nginx二级域名配置到文件夹
user root; worker_processes ; events { worker_connections ; } http { include mime.types; default_typ ...
- node.js 实现一个简单的登录拦截器
拦截器在web开发中随处可见,比如站点的管理后台,不说所有人都能进入,所以就需要做一个拦截器并友好的跳转到提示页. 下面我们简单实现一种,判断用户是否登录成功,登录不成功的用户自动重定向到登录页面. ...