共计 3254 个字符,预计需要花费 9 分钟才能阅读完成。
Django 框架次要内容我的项目创立运行配置文件路由配置 (View)request 和 response 对象 (View)类视图 (View)中间件数据库(Model)模板(Template)admin 站点管理学了这么多 python 的常识,如果连 django 都不会的话,那有点说不过去。想要的小伙伴间接去我的博客拿就行:
django 笔记 MD 文档 超丰盛
目录笔记的总目录为:
工程搭建把握虚拟环境应用把握 Django 我的项目和利用的创立把握 Django 我的项目的运行把握 Django 视图和模板的初步应用虚拟环境装置
- 创立虚拟环境 mkvirtualenv django_py3 -p python3 留神: 须要联网 2. 装置 Djangopip install django==1.11.113. 相干命令# 虚拟环境 mkvirtualenv # 创立虚拟环境 rmvirtualenv # 删除虚拟环境 workon # 进入虚拟环境、查看所有虚拟环境 deactivate # 退出虚拟环境# pippip install # 装置依赖包 pip uninstall # 卸载依赖包 pip list # 查看已装置的依赖包 Django (1.11.11)pip freeze # 查看已装置的依赖包 django==1.11.11Django 我的项目和利用创立一、我的项目组织构造一个 Project 蕴含有多个 App 一个 App 就是一个 Python 包,就代表一个功能模块,比方:用户模块,商品模块等各功能模块间能够放弃绝对的独立以包的模式组织代码不便功能模块的复用二、创立我的项目的两种形式通过 pycharm 创立通过 命令行创立 1. 通过 pycharm 创立我的项目
我的项目创立进去后构造如下:
- 通过命令创立创立我的项目: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?ca… 对于 URL 格局:schema://host:port?query-string 通过 body 申请体传递,又可依据传递的数据格式,分为: 键值对:category=1&page= 2 表单数据: 非表单数据(json, xml) {“category”: 1, “page”: 2} <news> <category>1</category> <page>2</page> </news> 通过 http 协定申请头(header)传递二、HttpRequest 对象一、Django 申请和响应过程:
二、request 对象罕用属性:AttributeDescriptionpath 申请页面的全门路,不包含域名端口参数。例如:/users/indexmethod 一个全大写的字符串,示意申请中应用的 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 类型 METApython 字典类型,封装了申请头 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))类视图 实现以函数的形式定义的视图称为函数视图在 Django 中还能够通过类来定义一个视图,称为类视图类视图 的应用定义一个类,继承 Django 提供的 View 类 from django.views.generic import View class PostView(View): def get(self, request): “””get 申请:显示发帖界面 ””” return render(request, ‘post2.html’) def post(self, request): “””post 申请:执行发帖操作 ””” # 代码简略 return HttpResponse(‘ 执行发帖操作 ’)调用类视图的 as_view() 办法配置 url urlpatterns = [ … # 类视图注册 url(r’^post2$’, views.PostView.as_view()), ]类视图长处:对于函数视图代码可读性和复用性更好笔记太多了,喜爱的小伙伴间接间接去拿就行: