【django】django深入学习笔记
官网教程 DjangoBook
Models 模型
一个类代表一个模型
类中的属性对应了对应数据表的数据
*makemirgations命令生成数据库脚本(还未同步过数据库,第一次要用到) - > migrate 生成更新对应的数据字段等(数据库内)
模型的取名不要和django.models自带的API重名(增删改查啥的)
Form 表单

- HttpRequest对象还有两个属性包含了用户所提交的信息: request.GET 和 request.POST。二者都是类字典对象,你可以通过它们来访问GET和POST数据。
模板 Template
{{ }} :变量
{% %}:模板标签 //通知模板系统完成某些工作的标签
1. 创建模板对象
2.模板渲染 //传递变量数据给它
*这里使用了RequestContext处理器,也可以用Context处理器实现,或render直接一步实现
**使用Django模板系统的基本规则: 写模板,创建 Template 对象,创建 Context , 调用 render() 方法
**模板中的{{}},在view里写的时候,对应的可以调用key的value属性,也可以是key的方法(名)(只能调用不需参数的方法),也可以是访问列表索引(不允许使用负数列表索引)(字典key:value)
当模板系统在变量名中遇到点时,按照以下顺序尝试进行查找:
字典类型查找 (比如 foo["bar"] )
属性查找 (比如 foo.bar )
方法调用 (比如 foo.bar() )
列表类型索引查找 (比如 foo[bar] )
**{{person.name.upper}} 也可以多层的先找person的属性name,在调用upper方法
3.基本的模板标签和过滤器
标签{% %}: //都可以多层嵌套
- if/else/endif
*else都是可选的而已
*{% if ____ %} 标签__内接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not )
*{% if %} 标签不允许在同一个标签中同时使用 and 和 or ,因为逻辑上可能模糊的
*一定要用 {% endif %} 关闭每一个 {% if %} 标签
for/endfor(循环)
*forloop.counter 就类似计数器一样不过是从0开始的
{% for item in todo_list %}
<p>{{ forloop.counter }}: {{ item }}</p>
{% endfor %}
ifequal/ifnotequal
*比较两个参数是否一致。参数可以用单双引号包起来
{% ifequal user currentuser %}
<h1>Welcome!</h1>
{% endifequal %}
**只有模板变量,字符串,整数和小数可以作为 {% ifequal %} 标签的参数
- 注释
{# #}
要实现多行注释,可以使用`` {% comment %}/{% endcomment %}`` 模板标签
- 过滤器
模板过滤器是在变量被显示前修改它的值的一个简单方法。 过滤器使用管道字符 //{{ name|lower }} name变量显示到页面上全部都是小写了
*可以有多个|;有些过滤器有参数;
【django】django深入学习笔记的更多相关文章
- Django RF:学习笔记(8)——快速开始
Django RF:学习笔记(8)——快速开始 安装配置 1.使用Pip安装Django REST Framework: pip install djangorestframework 2.在Sett ...
- 完整的Django入门指南学习笔记4
前言 这一章节将会全面介绍 Django 的身份认证系统,我们将实现注册.登录.注销.密码重置和密码修改的整套流程. 同时你还会了解到如何保护某些试图以防未授权的用户访问,以及如何访问已登录用户的个人 ...
- django初体验 学习笔记
django环境搭建 1.安装Python 2.ipython sudo apt-get install ipython sudo pip instal ...
- 完整的Django入门指南学习笔记1
转自[https://blog.csdn.net/qq_35554125/article/details/79462885] part 1: 前沿 教程材料一共会被分为七个部分. 此教程将从安装.开发 ...
- 完整的Django入门指南学习笔记7 网页自动翻译
转自[https://simpleisbetterthancomplex.com/series/2017/10/16/a-complete-beginners-guide-to-django-part ...
- 完整的Django入门指南学习笔记5
前言 欢迎来到本系列教程的第5部分,在这节课,我们将学习如何保护视图防止未登录的用户访问,以及在视图和表单中访问已经登录的用户,我们还将实现主题列表和回复列表视图,最后,将探索Django ORM的一 ...
- Django Web开发学习笔记(5)
第五部分 Model 层 创建一个app工程.app和project的区别引用DjangoBook的说法是: 一个project包含很多个Django app以及对它们的配置. 技术上,project ...
- 完整的Django入门指南学习笔记3
前言 在本节课中,我们将深入理解两个基本概念: URLs 和 Forms.在这个过程中,我们还将学习其它很多概念,如创建可重用模板和安装第三方库.同时我们还将编写大量单元测试. 如果你是从这个系列教程 ...
- 完整的Django入门指南学习笔记2
part2: 前沿 在第一节中,我们安装了项目所需要的一切:Python3.6以及在虚拟环境中运行的Django2.0,这部分教程继续在项目上编写代码. 开始写代码前,先讨论下项目的相关背景知识,然后 ...
- 完整的Django入门指南学习笔记6
前言 欢迎来到系列教程的第六部分!在这篇教程中,我们将详细探讨基于类的视图(简称CBV).我们也将重构一些现有的视图,以便利用内置的基于类的通用视图(Generic Class-Based Views ...
随机推荐
- 基础DOM和CSS操作(三)
CSS方法 jQuery不但提供了CSS的核心操作方法,比如.css()..addClass()等.还封装了一些特殊功能的CSS操作方法,我们分别来了解一下. width()方法 方法名 描述 wid ...
- 51Nod 算法马拉松15 记一次悲壮而又开心的骗分比赛
OwO 故事的起源大概是zcg前天发现51Nod晚上有场马拉松,然后他就很开心的过去打了 神奇的故事就开始了: 晚上的时候我当时貌似正在写线段树?然后看见zcg一脸激动告诉我第一题有九个点直接输出B就 ...
- GSM、3G、LTE、4G
3GPP(The 3rd Generation Partnership Project)3GPP的目标是实现由2G网络到3G网络的平滑过渡,保证未来技术的后向兼容性,支持轻松建网及系统间的漫游和兼容性 ...
- SQL中的Null深入研究分析
SQL中的Null深入研究分析 虽然熟练掌握SQL的人对于Null不会有什么疑问,但总结得很全的文章还是很难找,看到一篇英文版的, 感觉还不错. Tony Hoare 在1965年发明了 null 引 ...
- Python应用与实践【转】
转自:http://www.cnblogs.com/skynet/archive/2013/05/06/3063245.html 目录 1. Python是什么? 1.1. Pyt ...
- ARM处理器的寄存器,ARM与Thumb状态,7中运行模式 【转】
转自:http://blog.chinaunix.net/uid-28458801-id-3494646.html ARM处理器工作模式一共有 7 种 : USR 模式 正常用户模式,程序正常 ...
- java web每天定时执行任务
第一步: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ...
- nginx之location配置
语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因 ...
- poj - 1258 Agri-Net (最小生成树)
http://poj.org/problem?id=1258 FJ为了竞选市长,承诺为这个地区的所有农场联网,为了减少花费,希望所需光纤越少越好,给定每两个农场的花费,求出最小花费. 最小生成树. # ...
- bash/shell 数学计算
$ echo $((20.0/7)) $ zcalc $ bc <<< 20+5/2 $ bc <<< 'scale=4;20+5/2' $ expr 20 + 5 ...