Django安装
-
Django框架的介绍
2005年发布,采用Python语言编写的开源框架
早期的时候Django主做新闻和内容管理的
Django中自带强大的后台管理功能最新版本:2.1.7
使用版本:1.11.8官网: http://www.djangoproject.com
中文文档(第三方):http://djangobook.py3k.cn/2.0/ -
Django的框架模式
M – 模型层
T – 模板层
V – 视图层 -
Django的安装
- 查看已安装的版本
- 进入到python交互模式
python3 / ipython3 - 输入 import django
- 输入 django.VERSION
- 进入到python交互模式
- 安装
-
在线安装
sudo pip3 install django
(安装django的最新版本)sudo pip3 install django==1.11.8
(安装django的指定版本) -
离线安装
sudo pip3 install 离线安装包路径
-
- 查看已安装的版本
- ====================================================
Django框架的使用
- 创建项目的指令
指令: django-admin
语法: django-admin startproject 项目名称 - Django项目的目录结构
- manage.py
功能:包含项目管理的子命令
如:
启动服务:runserver
创建应用:startapp
数据库迁移:migrate - 主文件夹(与项目名称一致的文件夹)
- init.py
目初始化文件,服务启动时自动运行 - wsgi.py
WEB服务网关接口的配置文件
部署项目时使用 - urls.py
项目的基础路由配置文件
所有的动态路径必须先走该文件进行匹配 - settings.py
- 功能:项目的配置文件,启动服务时自动调用
- BASE_DIR
作用:表示当前项目的绝对路径 - DEBUG
作用:是否启用调试模式- 开发环境中使用True - 启用调试
- 生产环境中使用False - 不启用调试
- ALLOWED_HOSTS
作用:设置允许访问到本项目的地址列表
取值:- 如果为空
表示只有localhost和127.0.0.1能访问本项目 - [’*’]
任何表示本机的地址都能访问到当前项目
如:
localhost / 127.0.0.1 / 0.0.0.0 / IP
局域网内也允许访问
注意:
如果要在局域网内访问的话,启动方式:
python3 manage.py runserver 0.0.0.0:端口号
- 如果为空
- INSTALLED_APPS
作用:指定已安装的应用 - MIDDLEWARE
作用:注册中间件 - TEMPLATES
作用:指定模板的配置信息 - DATABASES
作用:指定数据库的配置信息 - LANGUAGE_CODE
作用:指定语言配置
取值:
中文 : zh-Hans - TIME_ZONE
作用:时区
取值:
中国时区 : Asia/Shanghai
- init.py
- URL的使用
- urls.py
默认存在于主文件夹内,主路由配置文件
包含最基本的路由-视图的映射关系
该文件会包含 urlpatterns 的列表用于表示路由-视图映射,通过 url() 表示具体映射 - url() 的语法
from django.conf.urls import url
语法:
url(regex,views,kwargs=None,name=None)
1.regex:字符串类型,匹配的请求路径,允许是正则表达式
2.views:指定路径所对应的视图处理函数的名称
3.kwargs:向视图中传递的参数
4.name:为地址起别名,反向解析时使用
问题:
http://localhost:8000
在网页中输出 : 这是我的首页 - 带参数的url
- urls.py
- manage.py
http://localhost:8000/show-02/2019
http://localhost:8000/show-02/1990
使用正则表达式的子组进行传参 - ()
一个子组表示一个参数,多个参数需要使用多个子组,并且使用个 / 隔开
http://localhost:8000/show-02/xxxx/
xxxx:表示任意的四位数字
urlpatterns = [
url(r'^show-02/(\d{4})/$',views.show_02),
]
views.py
def show_02(request,year):
year:表示的就是url中第一个子组对应的参数
return HttpResponse("xxx")
- 练习:
访问地址:http://localhost:8000/show03/四位数字/一到两位数字/一到两位数字
最终输出:生日为: xxxx年xx月xx日- 如:
http://localhost:8000/2015/12/11
生日为:2015年12月11日
- 如:
-
Django中的应用 - app
-
什么是应用(app)
应用在Django项目中是一个独立的业务模块,可以包含自己的路由,视图,… …Django中,主文件夹是不处理用户具体请求的.主文件夹的作用是做项目的初始化以及请求的分发(分布式请求处理).具体的请求是由应用来进行处理的
-
创建 & 配置应用
-
分布式路由系统
1.在应用中,创建 urls.py ,结构参考主路由配置- 练习:
- 创建应用
- 创建 index 应用,并注册
- 创建 sport 应用,并注册
- 创建 news 应用,并注册
- 创建分布式路由系统
主路由配置只做分发
每个应用中处理具体访问路径和视图- localhost:8000/index/index
交给 index 应用中的 index() 函数处理 - localhost:8000/music/index
交给 music 应用中的 index() 函数处理 - localhost:8000/sport/index
交给 sport 应用中的 index() 函数处理 - localhost:8000/news/index
交给 news 应用中的 index() 处理处理
- localhost:8000/index/index
- 创建应用
-
路由改版
访问路径:http://localhost:8000/music/index
改版路径:http://localhost:8000/music/
交给 music 应用中的 index() 视图函数处理访问路径:http://localhost:8000/index/index
改版路径:http://localhost:8000/index/
交给 index 应用中的 index() 视图函数处理访问路径:http://localhost:8000
交给 index 应用中的 index() 视图函数处理
访问路径:http://localhost:8000/login
交给 index 应用中的 login() 视图函数处理
访问路径:http://localhost:8000/register
交给 index 应用中的 register() 视图函数处理访问路径如果不是 news / music / sport 的时候,都交给 index 应用去处理
- 练习:
- 作业:
- 创建Django项目 - FruitDay
- 创建应用 - index ,并注册
- 配置路由
/ : 访问 index 应用中的 index() 处理函数
/login : 访问index应用中的 login() 处理函数
/register : 访问index应用中的 register()处理函数
-