django基础
时间:2019-10-22
本文章向大家介绍django基础,主要包括django基础使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1. http请求方法
GET
GET提交的数据会放在URL之后,也就是请求行里面,以?分割URL和传输数据,参数之间以&相连,如EditBook?name=test1&id=123456 GET提交的数据大小有限制(因为浏览器对URL的长度有限制)
HEAD
POST
POST方法是把提交的数据放在HTTP包的请求体中.而POST方法提交的数据没有限制.
PUT
DELETE
TRACE
OPTIONS
CONNET
2. 状态码
1xx 请求已接收,进一步处理
2xx 请求已接收,也正常处理 200 OK
3xx 重定向
4xx 请求错误 403,404
5xx 服务的错误
3. http 请求和响应的格式
GET / HTTP/1.1 请求行 方法 协议 版本
Host: 127.0.0.1:8003 请求头
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
#空行
请求数据(请求体) username=ziwen password=666
get请求 请求数据部分是没有数据的,get请求的数据在url上,在请求行里面,有大小限制,常见的get请求方式: 浏览器输入网址,a标签
post请求 请求数据在请求体(请求数据部分) ,数据没有大小限制, 常见方式:form表单提交数据
4. 请求和响应的步骤
1. 在浏览器的地址栏输入url地址,回车,发出一个get请求
2. django接收到请求,根据url的路径找到对应的函数,执行函数拿到结果
3. django将将结果封装成http响应的报文返回给浏览器
4. 浏览器接收响应,断开连接,分析数据
5. web框架实现的功能
1. socket接发消息
2. 根据不同的路径返回不同的内容
3. 返回HTML页面
4. 返回动态页面(模板渲染 字符串的替换)
6. 关于form表单中input的name属性
<form action="http://127.0.0.1:8848" method="get">
用户名:<input type="text" name="username">
密码:<input type="text" name="pwd">
<input type="submit">
</form>
方法为get时,只有设置了 name 属性的表单元素才能在提交表单时传递它们的值
7. MVC和MTV框架模式
MVC:
M -- models 数据库相关
V -- views 视图相关(逻辑)
C -- controller url控制器(url分发器,路由分发)
django -- MTV
M -- models 数据库相关
T -- templates HTML相关 html就是模板
V -- views 视图相关(逻辑)
+ controller url控制器(url分发器,路由分发)
8. django下载安装
1. 下载
pip install django==1.11.9 ***
pip3 install django==1.11.9 -i http://xxxxxx 指定源
2. 创建项目
django-admin startproject mysite
#创建了一个名为"mysite"的Django 项目
3. 创建应用
python manage.py startapp blog
#通过执行manage.py文件来创建应用,执行这句话一定要注意,你应该在这个manage.py的文件所在目录下执行这句话, 因为其他目录里面没有这个文件
python manage.py startapp blog2
#每个应用都有自己的目录,每个应用的目录下都有自己的views.py视图函数和models.py数据库操作相关的文件
启动项目
python manage.py runserver 默认是127.0.0.1:8000
python manage.py runserver 127.0.0.1 默认端口号是8000
python manage.py runserver 127.0.0.1:8001
9. django的url路由分发
# url(r'^articles/(\d+)/(\d+)/', views.articles), #articles/2019/9/
视图函数
def articles(request,year,month): # 位置参数 2019 9
print(year,type(year)) #2019 <class 'str'> #匹配出来的所有数据都是字符串
print(month)
return HttpResponse(year+'年'+ month +'月' +'所有文章')
# 有名分组参数
url(r'^articles/(?P<xx>\d+)/(?P<oo>\d+)/', views.articles), #articles/2019/9/
#xx=2019 oo=9 关键字传参
def articles(request,oo,xx): # 关键字传参 2019 9
print(xx,type(xx)) #2019 <class 'str'> #匹配出来的所有数据都是字符串
print(oo)
return HttpResponse(xx+'年'+ oo +'月' +'所有文章')
10 一些request方法
request.method 得到请求方式 GET POST 等 字符串类型
request.POST 得到提交的数据,querydict类型
request.POST.get("username") 直接根据键取值,结果字符串类型,无此键时,返回None
models.类名.objects.all() 查询所有的数据 queryset对象
models.类名.objects.get(username='alexs',password='alexdsb')
#models对象,有且只能一个(不存在或者多条数据就报错)(不建议使用)
models.类名.objects.filter(username='alexs',password='alexdsb') queryset对象
11. orm与数据库的对应关系
django 数据库
类 表
对象(类的实例对象) 数据行记录
属性 字段
原文地址:https://www.cnblogs.com/lvweihe/p/11719401.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- [译]在Solidity中创建无限制列表
- java安全编码指南之:声明和初始化
- java安全编码指南之:表达式规则
- java安全编码指南之:Number操作
- 如何提高代码质量
- 小姐姐非要问我:spring编程式事务是啥?
- 阿里3面:Spring声明式事务连环炮,让我措手不及。。
- 旷视科技|商用端侧Raw图像降噪方案
- Python | 时间戳转换
- Stata | 2020年国家社科基金立项名单分析
- 还在用Guava Cache?它才是Java本地缓存之王
- 死信队列的消息处理方案
- 【Ceph】Rook 中使用 External Cluster 的方式管理外部集群
- Redis排行榜的设计与实现
- 血的教训 | 一次订单号重复的事故差点被开除