从零到Django大牛的的进阶之路01
2024-10-08 15:56:31
搭建
创建虚拟环境
- 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重定向
最新文章
- List 泛型 集合中 Find 的用法
- 控制反转(IOC)和依赖注入(DI)的区别
- 树形结构的数据库表Schema设计
- Oracle笔记(三)单行函数
- bootstrap真是个好东西
- IIS支持APK/ISO文件下载的方法
- os即时通讯客户端开发之-mac上安装MySQL
- Bash: how to check if a process id (PID) exists
- HTML5地理定位,百度地图API,知识点熟悉
- MyEclipse报错
- Git分支合并冲突解决(续)
- css3一道闪光
- 自建docker swarm体验简单之美
- Linux下的压缩解压缩命令详解及实例
- Delphi revelations #1 – kbmMW Smart client on NextGen (Android) – Scope problems
- 巧用cheerio重构grunt-inline
- Hibernate left join
- C语言基本类型的字节数
- CAS单点登陆的两个原理图
- “Too many open files” 小记
热门文章
- github设置分支push权限
- java.lang.ClassCastException: android.app.Application cannot be cast to
- 「CF438D The Child and Sequence」
- cookie、session、localStorage、sessionStorage的区别
- The way get information from mssql by using excel vba and special port
- FLASK - 请求和响应
- 【快学SpringBoot】过滤XSS脚本攻击(包括json格式)
- 2019 徐州网络赛 G Colorful String 回文树
- js 字符串 常用处理方式(检索、截取、拼接、批量替换)
- 二、Navicat、IDEA、nopad、eclipse、excle工具使用、问题、快捷键