Django one
WEB-Django:
Http协议:
http协议:超文本传输协议,基于TCP/IP通信协议来传递数据
特点:
1.灵活:允许传输任意类型的数据对象。正在传输的类型有Content-Type标记
2.无连接:每次连接只处理一个请求,服务器处理完请求后,即断开来接,直到下一次客户端的请求。
3.无状态:指对事物处理没有记忆能力,后续处理需要前面的信息就必须重新传递。
请求协议:
请求行首:请求方式 请求路径 协议和版本 GET /index.html HTTP/1.1
请求头信息:请求头名称,请求头内容
空行:用于请求头和请求体分隔
请求体:post请求才有请求体
HTTP响应:
状态行,消息报头,空行,响应正文
MTV:
model:负责业务对象与数据库对象
template:负责页面渲染传递给前端显示
view:负责处理业务逻辑,适当的调用model和template
django请求生命周期:
在页面输入URL->根据URL在路由系统匹配相应的view->view处理逻辑并有可能到model获取数据->
model通过ORM到数据库获取数据并返回给view->view将获取到的数据进行处理传送到模板template进行渲染->
再由template发送到客户端即(浏览器)进行渲染。
其他:
1.#设置项是否开启URL访问地址后面不为/跳转至带有/的路径 APPEND_SLASH=True
2.每个捕获的参数都作为一个普通的Python 字符串传递给视图,无论正则表达式使用的是什么匹配方式
3.media的配置
MEDIA_URL="/media/"
MEDIA_ROOT=os.path.join(BASE_DIR,"app01","media","upload")
4.二级路由匹配 url(r'^blog/', include('blog.urls')),
5.有名分组:url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
6.带有别名路由:url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive,name='year_archive'),
7.反向解析URL: return redirect(reverse('news-year-archive', args=(year,)))
8.request方法:
.path:请求页面的全路径,不包括域名
.method:请求方式,'GET''POST'
.GET:包括GET参数的字典对象
.POST:包括POST参数的字典对象
.COOKIES 包含所有的cookies ,key和value都是字符串
.FILES .filename 上传文件名; content_type 上传文件的content type; .content:上传文件的原始内容
.user
.session
.request.POST.getlist('hobby') :当值时多个时如checkbox,select
模板过滤:
1.default:如果变量是False或者为空时,使用给定的默认值
{{value|default:12}}
2.length:返回值的长度,包括字符串和列表
{{list|length}}
3.filesizeformat:将值格式化为一个可读文件尺寸,如果value是123456789 输出117.7M
{{value|filesizeformat}}
4.data:如果 value=datetime.datetime.now()
{{ value|date:"Y-m-d" }}
5.slice
{{ value|slice:"2:-1" }}
6.truncatechars:如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“...”)结尾
{{ value|truncatechars:9 }}
7.safe:表示安全,允许被渲染
{{value|safe}}
8.for...enpty...endfor:
for带有一个可选{%enpty%},以便于在给出的组是空的或者没有被找到时,有所操作。
9.反向for循环
{%for item in list reversed%} {%endfor%}
10.便利一个字典
{%for key,val in dic.items%} {%endfor%}
自定义标签和过滤器
1.在setting中的INSTALLED_APPS配置app,不然django无法找到自定义的simple_tag
2.在app中创建templatetags模块,名字不可变
3.在templatetags中创建.py文件,如my_tags.py
4.在my_tags.py 中导入并注册
for django import template
for django.utils.safestring import mark_safe
register = template.Library
5.在函数头加装饰器
@register.simple_tag
@register.filter
6.创建函数
@register.filter
def filter_multi(v1,v2):
return v1*v2
@register.simple_tag
def simple_tag_multi(v1,v2):
return v1*v2
7.调用自定义标签
{%load my_tags%}
#num=12
{{num|filter_multi:2}} #24
{%simple_tag_multi num 2%} #24 参数不限,但不能放在if for 语句中
{% if num|filter_multi:30>100%}
{{num|filter_multi:30}}
{%endfor%}
Django one的更多相关文章
- 异步任务队列Celery在Django中的使用
前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- django server之间通过remote user 相互调用
首先,场景是这样的:存在两个django web应用,并且两个应用存在一定的联系.某些情况下彼此需要获取对方的数据. 但是我们的应用肯经都会有对应的鉴权机制.不会让人家随随便便就访问的对吧.好比上车要 ...
- Mysql事务探索及其在Django中的实践(二)
继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...
- Mysql事务探索及其在Django中的实践(一)
前言 很早就有想开始写博客的想法,一方面是对自己近期所学知识的一些总结.沉淀,方便以后对过去的知识进行梳理.追溯,一方面也希望能通过博客来认识更多相同技术圈的朋友.所幸近期通过了博客园的申请,那么今天 ...
- 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...
- 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...
- 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...
- Django
一.Django 简介 Django 是一个由 Python 写成的开放源代码的 Web 应用框架.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是 CMS(内容管理系统) ...
- Django admin定制化,User字段扩展[原创]
前言 参考上篇博文,我们利用了OneToOneField的方式使用了django自带的user,http://www.cnblogs.com/caseast/p/5909248.html , 但这么用 ...
随机推荐
- JAVA 框架之面向对象设计原则
面向对象设计原则: 单一职责原则 SRP : 一个类或者行为只做一件事 . 降低代码冗余,提高可重用性,可维护性,可扩展性,可读性 使用组合形式 里氏替换原则 LSP : 所有引用基类 ...
- String类、StringBuilder类、StringBuffer类
String类是不可变类,创建了一个String对象后,该String对象中的字符序列不能被改变. StringBuilder是字符序列可变的字符串类,提供了一系列修改字符串的方法. StringBu ...
- 用Meta标签代码让360双核浏览器默认极速模式打开网站不是兼容模式
公司所作的页面在360下打开都会遇到在360下自动跳到360兼容模式引发许多兼容问题,摸索了好久终于在网上找到了怎么解决的方法,详情如下: 其实360给网站开发者设计了一种选择的方法,只要加入一段Me ...
- html页面和jsp页面的区别
html页面: html页面是静态页面,可以使用html+css+js实现页面的各种效果,单纯使用html布局出来的页面是设定好的页面,可以使用本地浏览器打开.同时搭配使用ajax实现数据交互效果的页 ...
- Android(java)学习笔记107:Relativelayout相对布局
1. Relativelayout相对布局案例: 我们看看案例代码,自己心领神会: <?xml version="1.0" encoding="utf-8" ...
- 如何使用TensorFlow Hub和代码示例
任何深度学习框架,为了获得成功,必须提供一系列最先进的模型,以及在流行和广泛接受的数据集上训练的权重,即与训练模型. TensorFlow现在已经提出了一个更好的框架,称为TensorFlow Hub ...
- zend studio failed to create java virtual machine无法启动的解法
zend studio failed to create java virtual machine 解决方案:在安装目录下修改ZendStudio.ini中第十四行处改成 -Xmx512M. -sta ...
- 2018.3.31 java中的递归
java中的递归 1.概念 定义一个方法时,出现本方法调用本方法的过程,称之为递归 2.特点 必然有一个边界条件 使用递归代码往往更简洁,可读性强 3.什么时候使用递归 n的阶乘和n的累加定义 f(n ...
- java 自定义一个容器类
public class ArrayList { public int index = 0; Object[] objects = new Object[2]; public void add(Obj ...
- Bootstrap历练实例:语境色彩的面板
带语境色彩的面板 使用语境状态类 panel-primary.panel-success.panel-info.panel-warning.panel-danger,来设置带语境色彩的面板,实例如下: ...