1.Django框架介绍
1.什么是Django
Django是一个开源框架,2005年发布,采用Python语言编写的。早期时主要做新闻和内容管理的网站
Django本身提供了非常强大的后台管理系统
官网:http://www.djangoproject.com
中文文档:http://djangobook.py3k.cn/2.0/
2.框架模式
MTV
M :Models - 模型(数据库)
T :Templates - 模板(网页)
V :Views - 视图(逻辑)
2.Django框架的安装
1.查看已安装的Django版本
1.进入到终端以及Python交互模式
交互模式 :python3 / ipython3
2.在交互模式中输入 :import django
如果报错:当前环境中没有安装Django
如果未报错:已经成功安装Django
3.查看已安装的版本
交互模式中:django.VERSION
2.安装Django
1.在线安装 - 使用 pip / pip3
pip : 安装到python2.7
pip3 : 安装到python3.5
sudo pip3 install django
(安装Django的最新版本)
sudo pip3 install django==1.11.8
(安装Django的指定版本)
2.离线安装
sudo pip3 install Django-1.11.8.tar.gz
3.Django框架的使用
1.创建项目
使用 django-admin 创建Django项目
语法:django-admin startproject 项目名称
2.Django的项目结构介绍
1.manage.py
功能:包含执行django中的各项操作的指令
如:
启动服务:runserver
2.主目录(与项目名称一致的目录)
1.__init__.py
项目的初始化文件,自动运行
2.urls.py
项目的基础路由配置文件
3.wsgi.py
Web Server Gateway Interface
Web 服务网关接口
4.settings.py
项目的配置文件
1.BASE_DIR
2.ALLOWED_HOSTS
设置允许访问到本项目的地址列表
如果允许在网络中被其他的机器访问到的话
推荐写['*'],表示任何能够表示该机器的地址都能访问到该项目
同时还需配合着启动服务时要指定地址和端口
python3 manage.py runserver 0.0.0.0:8000
3.INSTALLED_APPS
指定已安装的应用,如果有自定义的应用的话,需要在此注册
4.MIDDLEWARE
中间件,如果有自定义中间件,需要在此注册
5.ROOT_URLCONF
指定项目的基础路由配置文件
6.TEMPLATES
配置模板的信息
7.DATABASES
配置数据库的信息
8.LANGUAGE_CODE
语言设置,如果需要中文的话,允许将值更改为 "zh-Hans"
9.TIME_ZONE
指定时区,中国的时区,允许将值更改为"Asia/Shanghai"
3.url的使用
1.urls.py
默认是在主目录中,主路由配置文件,会包含最基本的地址映射,并且每个地址访问都必须要先经过该文件
作用:通过 urls中定义好的地址找到对应的视图处理函数
urls.py:
urlpatterns = [
url()
]
2.url() 的语法
作用:为了匹配用户的访问路径
语法:
from django.conf.urls import url
url(regex,views,kwargs=None,name=None)
1.regex:允许是正则表达式,匹配请求的url
2.views:地址匹配后要执行操作的视图处理函数
3.kwargs:字典,用来向views传参的,可以省略
4.name:为url起别名,在地址反向解析时使用
ex:
访问地址:http://localhost:8000/01-show/
需要在网页中输出:我的第一个Django程序
3.通过 url 向视图传参
1.使用正则表达式传参
使用子组传参,一个子组是一个参数,要传递多个参数的话需要使用多个子组,中间用 / 隔开
子组 - ()
urls.py
urlpatterns = [
#访问路径是 /02-show/四位数字,交给show02_views去处理
url(r'^02-show/(\d{4})/$',show02_views)
]
views.py
def show02_views(request,num1):
num1表示的就是/02-show/路径后的第一个子组参数
pass
2.使用url()第三个参数 - 字典传参
dic = {
'name':'sasuke',
'age':18
}
urls.py
url(r'^show/$',show_views,dic)
views.py
def show_views(request,name,age):
name:字典中name的值,字符串
age:字典中age的值,整数
pass
4.Django中的应用
1.什么是应用
应用就是网站中的一个独立的程序模块
如:网易网站可分为若干应用组成:
1.新闻应用 - 与新闻相关的内容
2.汽车应用 - 与汽车相关的内容
3.科技应用 - 与科技相关的内容
在Django中,主目录一般不处理具体的请求,主目录一般要处理的是项目的初始化操作以及请求的分发(分布式请求处理)。而具体的请求是由各个应用去处理。
2.创建应用
1.指令
./manage.py startapp 应用名称
2.在settings.py中进行注册
在 INSTALLED_APPS 中追加应用的名称来表示注册应用
INSTALLED_APPS = [
'django.contrib.admin',
... ...,
'自定义应用名称'
]
3.应用的结构组成
1.migrations 文件夹
存放数据库的中间文件
2.__init__.py
应用的初始化文件
3.admin.py
应用的后台管理配置文件
4.app.py
应用的属性配置文件
5.models.py
Models 与 模型相关的映射文件
6.tests.py
应用的单元测试文件
7.views.py
定义视图处理函数的文件
4.分布式路由系统
在每个应用中分别取创建 urls.py 格式参考主路由文件
目的:为了处理各个应用中的请求路由
当访问路径是: http://localhost:8000/music/xxx
则交给music的urls去处理
当访问路径是: http://localhost:8000/music/index
交给 music 应用中的 index_views() 去处理