django基础到高手知识笔记总结,50页笔记,共10大模块
Django框架
主要内容
学了这么多python的知识,如果连django都不会的话,那有点说不过去。
想要的小伙伴直接去我的博客拿就行:
django 0基础到高手笔记集合https://zhuanlan.zhihu.com/p/563669859
目录笔记的总目录为:
工程搭建
-
掌握虚拟环境使用 -
掌握Django项目和应用的创建 -
掌握Django项目的运行 -
掌握Django视图和模板的初步使用
虚拟环境安装
1. 创建虚拟环境
mkvirtualenv django_py3 -p python3
注意: 需要联网
2. 安装Django
pip install django==1.11.11
3. 相关命令
# 虚拟环境
mkvirtualenv ? ? ?# 创建虚拟环境
rmvirtualenv ? ? ?# 删除虚拟环境
workon ? ? ? ? ? ?# 进入虚拟环境、查看所有虚拟环境
deactivate ? ? ? ?# 退出虚拟环境
?
# pip
pip install ? ? ? # 安装依赖包
pip uninstall ? ? # 卸载依赖包
pip list ? ? ? ? ?# 查看已安装的依赖包 Django (1.11.11)
pip freeze ? ? ? ?# 查看已安装的依赖包 django==1.11.11
Django项目和应用创建
一、项目组织结构
二、创建项目的两种方式
1. 通过 pycharm 创建项目
项目创建出来后结构如下:
2. 通过命令创建
创建项目: django-admin startproject 项目名 创建应用: python manage.py startapp 应用名
-
创建项目
-
要创建Django项目, 先进入虚拟环境: workon 虚拟环境名 -
使用如下命令创建Django项目: django-admin startproject 项目名
# 例:要创建的项目名为 Django02
django-admin startproject Django02
-
创建应用
-
先进入项目根目录下: cd 项目根目录 -
执行以下命令创建应用 # manage.py 为上述创建项目时自动生成的管理文件
python manage.py startapp 应用名
# 例:
python manage.py startapp users
请求对象
一、客户端传参的几种方式
-
通过 URL路径(path )传递,例如:http://127.0.0.1:8000/news/1/2 ,两个参数:新闻类别id 和 页码 -
通过 query string 查询字符串 传递
-
例如:http://127.0.0.1:8000/news?category=1&page=2 -
关于URL格式: schema://host[:port][path][?query-string][#anchor]
-
通过 body 请求体 传递,又可根据传递的数据格式,分为:
-
键值对:category=1&page=2 -
表单数据: -
非表单数据(json, xml) {"category": 1, "page": 2}
<news>
<category>1</category>
<page>2</page>
</news>
-
通过 http 协议请求头(header )传递
二、HttpRequest对象
一、Django请求和响应过程:
二、request对象常用属性:
Attribute | Description |
---|
path | 请求页面的全路径,不包括域名端口参数。例如: /users/index | method | 一个全大写的字符串,表示请求中使用的HTTP方法,常用值:GET , POST ,DELETE ,PUT 等。以下三种为 GET 请求: form 表单默认提交(或者method指定为get)``在浏览器中输入地址直接请求``网页中的超链接(a标签) | user | 已登录:AbstractUser对象;未登录:AnonymousUser对象; 判断是否已经登录: request.user.is_authenticated() ,返回true表示已经登录 | GET | 类似字典的 QueryDict 对象,包含 GET 请求的所有参数 | POST | 类似字典的 QueryDict 对象,包含 POST 请求的所有键值对参数(表单post提交的参数) | body | 获取原始的请求体数据,获取到的数据为bytes类型 | META | python 字典类型,封装了请求头headers中的数据 - REMOTE_ADDR – 客户端的IP地址 - REQUEST_METHOD — 一个字符串,例如"GET" 或"POST - CONTENT_TYPE – 请求的正文的MIME 类型 注意:对于用户添加到请求头中的键值,Django会给键加上前缀 HTTP_ 再转换成大写,再把键值保存到request.META中 官方文档参考 | COOKIES | 一个标准的 python 字典,包含所有的 cookies , 键和值都是字符串 | session | 可读可写的类似字典的对象: django.contrib.sessions.backends.db.SessionStore 。 Django 提供了 session 模块,默认就会开启用来保存 session 数据 |
类视图
一、类视图
-
发帖功能 # url配置
urlpatterns = [
url(r'^post$', views.post), # 显示发帖界面
url(r'^do_post$', views.do_post), # 执行发帖操作
]
# 视图
def post(request):
"""get请求: 显示发帖界面"""
return render(request, 'post.html')
def do_post(request):
"""post请求: 执行发帖操作"""
title = request.POST.get('title')
content = request.POST.get('content')
return HttpResponse('发帖:title=%s, content=%s' % (title, content)) -
通过一个URL和视图同时实现登录功能的 GET 和 POST 请求(注意:可能还有PUT DELETE 等); # url配置
urlpatterns = [
url(r'^post$', views.post), # 发帖功能
]
# 视图
def post(request):
"""发帖功能"""
if request.method == 'GET':
# get请求: 显示发帖界面
return render(request, 'post.html')
else:
# post请求: 执行发帖操作
title = request.POST.get('title')
content = request.POST.get('content')
return HttpResponse('发帖:title=%s, content=%s' % (title, content)) -
类视图 实现
-
类视图优点:对于函数视图代码可读性和复用性更好
笔记太多了,喜欢的小伙伴直接直接去拿就行:
|