Django框架介绍
什么是Django
- Django是一个开源框架,2005年发布,采用Python语言编写的。早期时主要做新闻和内容管理的网站的。Django本身提供了非常强大的后台管理系统。
- 官网:http://www.djangoproject.com
- 中文文档:http://djangobook.py3k.cn/2.0/
框架模式 - MTV
- M:Models - 数据库模型
- T:Templates - 模板(网页)
- V:Views - 视图
Django框架的安装
安装Django框架
- 查看已安装的Django版本
# 进入到终端以及python的交互模式
>> python3 / ipython3
# 交互模式中输入
import django
# 如果未报错:当前环境中已经装好Django
# 如果报错:当前环境中没有Django
# 查看已安装的版本
django.VERSION
- 安装Django
# 在线安装 - 使用 pip3
pip3 # 安装到 python3
pip # 安装到 python2
sudo pip3 install django # 安装Django的最新版本
sudo pip3 install django==1.11.8 # 安装Django的指定版本
# 离线安装
# 下载安装包
# 解压安装包
tar -xvf Django-1.11.8.tar.gz
# 进入到解压目录中,找到 setup.py 文件
sudo python3 setup.py install
Django框架的使用
创建项目(Linux下)
- 创建目录
# 用于保存所有的Django项目(可选)
mkdir django
- 创建项目
cd django
# 使用 django-admin 指令创建 Django 项目
django-admin startproject 项目名
Django项目的结构介绍
manage.py
包含执行django中的各项操作的指令(子命令)
- 启动服务:
runserver
- 创建应用:
startapp
- 创建管理员:
createsuperuser
主目录
-
__init__.py
项目的初始化文件,服务被启动,该文件自动被运行 -
urls.py
项目的基础url配置文件(基础的路由配置) -
wsgi.py
Web Server Gateway Interface,Web服务网关接口 -
settings
项目的配置文件-
BASE_DIR
获取当前项目的绝对路径 -
DEBUG
是否启用调试模式True
(开发环境中) /False
(生产环境中) -
ALLOWED_HOSTS
设置允许访问到本项目的地址列表- 如果为空的话,只有本机
localhost/127.0.0.1
才能访问; - 如果允许在局域网中被外部机器访问的话:推荐写
['*']
,表示任何能够表示该机器的地址都能访问到当前项目 - 如果允许被其他机器访问的话,启动服务时,必须使用以下方式
./manage.py runserver 0.0.0.0:端口号
- 如果为空的话,只有本机
-
INSTALLED_APPS
指定已安装的应用,如果有自定义应用的话,需要在此注册 -
MIDDLEWARE
中间件,如果有自定义的中间件,需要在此注册 -
ROOT_URLCONF
用于指定项目的基础路由配置文件 -
TEMPLATES
指定模板的信息 -
DATABASES
指定数据库的信息 -
LNAGUAGE_CODE
语言设置,如果需要中文的话,允许将值更改为 "zh-Hans" -
TIME_ZONE
指定时区,中国时区的话,允许将值设置为 "Asia/Shanghai"
-
URL的使用
urls.py
- 默认在主目录中,主路由配置文件,会包含最基本的地址映射。
- 作用:通过urls中定义好的地址找到对应的视图处理函数
url的语法
# 作用:为了匹配用户的访问路径
from django.conf.urls import url
# 2.0版本后需要导入
from django.urls import path, re_path
url(regex,views,kwargs=None,name=None)
# regex:允许是正则表达式,匹配请求的url
# views:对应的视图处理函数的名称
# kwargs:字典,用来向views传参,如果没有参数可以省略
# name:为url起别名,在地址反向解析时使用
通过url向视图传参
- 使用正则表达式传参
使用子组传参,一个子组就是一个参数,要传递多个参数的话需要使用多个子组,中间用/
隔开
urlpatterns = [
#当访问路径是show/的时候,交给show_views处理
url(r'^show/$',show_views),
#当访问路径是show/两位数字的时候,交给show1_views函数处理
url(r'^show/(\d{2})/$',show1_views),
url(r'^show/(\d{4})/(\d{2})/(\d{2})/$',show2_views)
# 2.0版本之后需要在后面加 /
path('admin/', admin.site.urls),
re_path(r'^show/$', show_views) # 正则匹配
]
# views.py
def show1_views(request,num1):
# num1 表示的就是路径 "show/"后面的第一个参数
pass
def show2_views(request,year,month,day):
return HttpResponse('生日是:' + year + '年' + month + '月' + day + '日')
- 使用url()第三个参数 - 字典传参
dic = {
'name':'naruto',
'age':18,
}
url(r'^show3/$',show3_views,dic)
# views.py
# 参数名称必须与dic中键的一致
def show3_views(request,name,age):
pass
url的第四个参数
- name:为了给当前的url地址起别名,反向解析时使用
- 反向解析:通过别名找到对应的地址
url(regex,views,kwargs=None,name='别名')
Django中的应用
什么是应用
- 应用就是网站中的一个独立的程序模块
- 在Django中,主目录一般不处理用户的具体请求,主目录主要做的是项目的初始化以及请求的分发(分布式请求处理),而具体的请求由各个应用去处理
创建应用
- 指令
./manage.py startapp 应用名称
py manage.py startapp 应用名称
- 在 settings.py 中进行注册
# 在 INSTALLED_APPS 中追加引用名称
INSTALLED_APPS = [
'djanog.contrib.admin',
... ...,
'自定义应用名称',
]
应用的结构组成
-
migrations
该目录存放数据的中间文件 -
__init__.py
应用的初始化文件 -
admin.py
应用的后台管理配置文件 -
app.py
应用的属性配置文件 -
models.py
Models 与模型相关的映射文件 -
tests.py
应用的单元测试文件 -
views.py
定义视图处理函数的文件
分布式路由系统
在每个应用中创建urls.py
,内容的格式参考主目录的urls.py
网友评论