从零到Django大牛的的进阶之路01
搭建
创建虚拟环境
- mkvirtualenv django_py3_1.11 -p python3
安装Django
- pip install django==1.11.11
创建工程
- django-admin startproject 工程名称
- 工程目录
- settings.py 是项目的整体配置文件。
urls.py 是项目的URL配置文件。
wsgi.py 是项目与WSGI兼容的Web服务器入口。
manage.py 是项目管理文件,通过它管理项目。
运行开发服务器
- python manage.py runserver ip:端口
创建子应用
- python manage.py startapp 子应用名称
- 子应用目录
- admin.py 文件跟网站的后台管理站点配置相关。
apps.py 文件用于配置当前子应用的相关信息。
migrations 目录用于存放数据库迁移历史文件。
models.py 文件用户保存数据库模型类。
tests.py 文件用于开发测试用例,编写单元测试。
views.py 文件用于编写Web应用视图
- 注册安装子应用
- 将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表中
创建视图
from django.http import HttpResponse
def index(request):
"""
index视图
:param request: 包含了请求信息的请求对象
:return: 响应对象
"""
return HttpResponse("hello the world!")
定义路由URL
- 在子应用中新建一个urls.py文件用于保存该应用的路由。
- 在工程总路由demo/urls.py中添加子应用的路由数据。
配置、静态文件与路由
配置文件
- BASE_DIR
- 当前工程的根目录
- DEBUG
- 调试模式,创建工程后初始值为True
- 本地语言与时区
静态文件
- STATICFILES_DIRS 存放查找静态文件的目录
- STATIC_URL 访问静态文件的URL前缀
路由说明
- 从主路由文件中的urlpatterns列表中以由上至下的顺序查找对应路由规则,如果发现规则为include包含,则再进入被包含的urls中的urlpatterns列表由上至下进行查询。
reverse反解析
- 在使用include函数定义路由时,可以使用namespace参数定义路由的命名空间
- 在定义普通路由时,可以使用name参数指明路由的名字
- 使用reverse函数,可以根据路由名称,返回具体的路径
请求响应
请求
- URL路径参数
- 可以使用正则表达式提取参数的方法从URL中获取请求参数
- 未命名参数按定义顺序传递
- 命名参数按名字传递
- 可以使用正则表达式提取参数的方法从URL中获取请求参数
- QueryDict对象
- HttpRequest对象的属性GET、POST都是QueryDict类型的对象
- 方法get():根据键获取值
- 方法getlist():根据键获取值,值以列表返回,可以获取指定键的所有值
- 查询字符串Query String
- request.GET属性获取
- 表单类型 Form Data
- 可以通过request.POST属性获取,返回QueryDict对象。
- 非表单类型 Non-Form Data
- 可以通过request.body属性获取最原始的请求体数据,
响应
- HttpResponse
- HttpResponse(content=响应体, content_type=响应体数据类型, status=状态码)
- JsonResponse
- 若要返回json数据,可以使用JsonResponse来构造响应对象
- redirect重定向
从零到Django大牛的的进阶之路01的更多相关文章
- 从零到Django大牛的的进阶之路02
Cookie/Session Cookie Cookie以键值对的格式进行信息的存储. Cookie基于域名安全,不同域名的Cookie是不能互相访问的,如访问itcast.cn时向浏览器中写了Coo ...
- PHP进阶之路 -- 01 PHP基础语法
PHP进阶之路 -- PHP基础语法 windows环境下php环境 php定界符 php变量 php数据类型 数据类型转换 检测数据类型 php中三种输出方式 php字符集设置 php常量 p ...
- Django中的ORM进阶操作
Django中的ORM进阶操作 Django中是通过ORM来操作数据库的,通过ORM可以很easy的实现与数据库的交互.但是仍然有几种操作是非常绕也特别容易混淆的.于是,针对这一块,来一个分类总结吧. ...
- Django学习笔记(进阶篇)
Django学习笔记(进阶篇):http://www.cnblogs.com/wupeiqi/articles/5246483.html
- JavaScript进阶之路(一)初学者的开始
一:写在前面的问题和话 一个javascript初学者的进阶之路! 背景:3年后端(ASP.NET)工作经验,javascript水平一般般,前端水平一般般.学习资料:犀牛书. 如有误导,或者错误的地 ...
- GO语言的进阶之路-初探GO语言
GO语言的进阶之路-初探GO语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么我们需要一门新语言 Go语言官方自称,之所以开发Go 语言,是因为“近10年来开发程序之难 ...
- GO语言的进阶之路-网络安全之proxy
GO语言的进阶之路-网络安全之proxy 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在党的带领下,我们大陆的孩子身心健康还是杠杠的,尤其是像我这种农村孩纸,从来不会像<人 ...
- GO语言的进阶之路-协程和Channel
GO语言的进阶之路-协程和Channel 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 看过我之前几篇博客小伙伴可能对Golang语言的语法上了解的差不多了,但是,如果想要你的代码 ...
- GO语言的进阶之路-面向对象编程
GO语言的进阶之路-面向对象编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 当你看完这篇文章之时,我可以说你的Golang算是入门了,何为入门?就是你去看Docker 源码能看 ...
随机推荐
- python爬虫(五) ProxyHandler处理器
ProxyHandler处理器 一.如果我们在一段时间内用某个ip地址访问了一个网站次数过多,网站就检测到不正常,就会禁止这个ip地址的访问.所以我们可以设置一些代理服务器,每段时间换个代理,就算ip ...
- 使用 CocoaPods 遇到的问题记录
1. 在 Terminal 输入 Cocoapods 命令时,有时会一直等待,出现“Performing a deep fetch of the `master` specs repo to impr ...
- 「Luogu P2824 [HEOI2016/TJOI2016]排序」
一道十分神奇的线段树题,做法十分的有趣. 前置芝士 线段树:一个十分基础的数据结构,在这道题中起了至关重要的作用. 一种基于01串的神奇的二分思想:在模拟赛中出现了这道题,可以先去做一下,这样可能有助 ...
- 计划任务之一次性计划任务(at)和周期性计划任务(crontab)(重点)
一:知识要点 ----计划任务的意义----计划任务分类----用户计划任务crontab----系统计划任务----计划任务使用注意事项----anacron服务介绍 二:计划任务的意义计划任务 - ...
- 3 (mysql实战) 事务隔离
提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务.最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱. 转账过程具体到程序里会有一系列的操作,比如 ...
- JS操作网页中的iframe
/* *parent.html */ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- Python 基础之模块之os os.path 及os与shutil对比
一: os 对系统进行操作 #注:以下操作都在linux环境下操作,且很多运行之前需要做好相关条件import os#(1)system() 在python总执行系统命令#os.system(&quo ...
- 查漏补缺之Go的Strings, bytes, runes和字符
字节遍历,字符遍历 https://play.golang.org/p/DeZcCN9aHXo package main import ( "fmt" "unicode/ ...
- VUe for循环if 的使用和函数的使用 (笔记)
结果如图: 代码html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- project clean
1.由于eclipse的编译是基于时间戳的判断机制的.因此当你按build all的时候有些eclipse认为时间戳没有改变的类不会被编译.因此你可以先clean一下再编译.这个时候eclipse会将 ...