关于django的一些基础知识
1.中间件
中间件的作用 : 在全局范围内控制django的输入和输出的钩子函数
中间件中有5种方法:
process_request : 请求进来时,进行验证
process_views : 路由匹配成功之后,能够得到视图函数
process_exception : 处理异常时执行
process_template_responseprocess : 模板渲染时执行
process_response : 将处理完的请求发送出去
2.路由系统(url)
路由中基本上就是正则匹配,
url(正则表达式, 视图.函数, 别名)
正则 : r'^xxx/$'
分组和命名分组:
分组(), 在视图函数中,传参时接收参数变量名随便起,
命名分组 (?P<name>) ,传参时,变量名必须为name.
include 路由分发

url的命名和反向解析
{% url '别名' 位置参数 关键字参数 %}
reverse (别名, args=(a,) , kwargs={ x: xx})
namespace 如果运用了namespace,在模板渲染时 :
{% url namespace: 别名 位置参数 关键字参数 %}
3.视图函数
写法 :FBV , CBV
request可以有多少方法(需要至少掌握10中以上)
GET GET请求 ,
POST POST请求,
FILES 上传文件 ,
method 判断提交方式,
body 请求体 ,
COOKIES 以cookie的形式发送 ,
SESSION 以session的形式发送 ,
path_info 获取当前url 不带参数 ,
get_full_path 获取当前url 带参数 ,
is_ajax
is_ajax()会判断请求头里 'HTTP_X_REQUESTED_WITH'的值。如果请求方式不为ajax,那么请求头里是不含'HTTP_X_REQUESTED_WITH'的。如果是ajax请求,is_ajax()则会返回True.
response
Httpresponse 返回字符串
render 返回一个页面
redirect(' /index/ ') 重定向
JsonResponse 以Json的形式返回
4.模板
{{ 变量 }} {% 逻辑 %}
5.ORM操作
13条
返回queryset对象
all 获取所有的对象
filter 筛选出xxx对象
value 拿到对应的对象
exclude
value_list 获取value,以列表的形式返回
order_by 排序
reverse 翻转
distinct 去重
返回对象的
get
first
last
布尔值
exists
数字
count
外键
多对多
作者 书籍
author_obj.books.all()
author_obj.books.add([1,2])
author_obj.books.remove(id)
author_obj.books.set([book_id1,book_id2])
author_obj.books.clear()
author_obj.books.create()
聚合和分组
aggregate() 聚合查询
annotate() 分组查询
F 和 Q查询
Q(aa_contains='xx') | Q(aa_contains='sss')
Q(('aa_contains','xx'),)
filter(aa_lte=F(bb_gt)*3)
6.cookie 和 session
7.ajax
8.form ModelForm ModelFormset
关于django的一些基础知识的更多相关文章
- WEB框架-Django框架学习-预备知识
今日份整理,终于开始整个阶段学习的后期了,今日开始学习Django的框架,加油,你是最胖的! 1.web基础知识 1.1 web应用 Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是 ...
- Python 基础知识(一)
1.Python简介 1.1.Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时 ...
- Python基础知识详解 从入门到精通(七)类与对象
本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详 ...
- Python入门方法推荐,哪些基础知识必学?
很多想入门的小伙伴还不知道Python应该怎么学,哪些知识必学,今天我们就来盘点一下. 01.入门方法推荐 总体来讲,找一本靠谱的书,由浅入深,边看边练. 网上的学习教程有很多,多到不知道如何选择.所 ...
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- selenium自动化基础知识
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
随机推荐
- 基于Jenkins实现持续集成【持续更新中】
持续集成 1.什么是持续集成:Continuous integration (CI)持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生 ...
- Eclipse启动报错An internal error occurred during: "Initializing Java Tooling"
Eclipse启动报错An internal error occurred during: "Initializing Java Tooling" 解决方案: 删除工作空间work ...
- oracle导出导入指定表
从源数据库导出: exp user1/pwd@server1/orcl file=c:\temp\exp.dmp tables=(table1, table2) 导入到目标数据库: imp user2 ...
- Linux基础命令---lpr打印文件
lpr lpr指令用来打印文件,如果没有指定文件名,那么从标准输入读取内容.CUPS提供了许多设置默认目标的方法.首先查询“LPDEST”和“PRINTER”环境变量.如果没有设置,则使用lpopti ...
- undefined的几种情况
1.变量声明了,但是没有赋值: 2.一个变量声明了,并且赋值了undefined: var a = undefined; 3.一个对象中,获取某个不存在的属性,值也是undefined
- PHP防止网页快速刷新+代理ip访问
前几天网站收到了一些CC攻击,比较郁闷...这里分享一下,防止网页自动刷新的方法以及阻止代理IP访问网站的方法,代码是分开的,两个功能,需要那个用那个,可以自定义时间间隔,这个代码不止可以防CC攻击, ...
- ORA-64379: Action cannot be performed on the tablespace assigned to FastStart while the feature is enabled
解决方法: 禁止IM FastStart exec DBMS_INMEMORY_ADMIN.FASTSTART_DISABLE();
- JS设计模式(5)发布订阅模式
什么是发布订阅模式(观察者模式)? 定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新. 主要解决:一个对象状态改变给其他对象通知的问题,而且 ...
- Android创建自定义的布局和控件
Android的自带布局有framelayout.linerlayout.relativelayout,外加两个百分比布局,但是这些无法灵活的满足我们的需要,所以我们要自己自定义并引入自己的布局.首先 ...
- 7、zabbix使用进阶(03)
节知识点: zabbix自动发现 web监控 zabbix自动发现 官网:https://www.zabbix.com/documentation/4.0/zh/manual/discovery/ ...