一、Django介绍
什么是Django框架?
1、开源框架,python语言编写
2、住做新闻和内容管理网站
3、Django提供了强大的后台管理系统
框架的模式:MTV
M:Models 模型层
T:Templates 模板层
V:Views 视图层
二、Django安装
linux下在线安装
sudo pip3 install Django(安装最高版本)
sudo pip3 install Django==1.11.8 (安装指定版本)
三、Django框架的使用
1、创建项目
语法:django-admin start project 项目名称
2、Django项目目录介绍
1.manage.py
提供项目管理的各种指令
如 启动服务:runserver 创建应用:startapp
2.主目录(与项目名称一致的文件夹)
1.init.py 项目的初始化文件 项目启动时自动运行
2.urls.py 基础路由配置文件
3.wsgi.py Web Server Getaway Interface
4.settings.py 项目的主配置文件
3、URL的使用
1.url.py
默认:在目录中
作用:通过urls中定义好的地址找到对应的处理程序
urlpatterns=[ ]
在[ ]中通过url函数来表示具体的处理关系
2.url的语法
from django.conf.urls import url
url(regex,views,kwargs=None,name=None)
regex:表示请求的url,允许正则表达式的字符串
view:对应视图处理函数的名称
kwargs:向视图中传递的参数,字典,可以省略
name:给当前的地址起别名,地址反向解析时使用
示例:
创建一个名为game的app
定义访问路径:
http://127.0.0.1:8000/wzry(访问显示王者荣耀)
http://127.0.0.1:8000/cjzc(访问显示刺激战场)
第一步:创建应用,并在settings中INSTALL_APPS中添加app
该目录下终端输入:python3 manage.py startapp game
第二步:创建视图处理函数(views.py)
HttpResponse 在Django中能够向客户浏览器响应一段文本
函数中 request参数不可缺少,以此区分普通函数
from django.http import HttpResponse
//给视图处理函数王者荣耀命名为wzry
def wzry(request):
return HttpResponse('王者荣耀')
//给视图处理函数王者荣耀命名为cjzc
def cjzc(request):
return HttpResponse('刺激战场')
`
第三步:设置url(urls.py)
from django.conf.urls import url
from django.contrib import admin
from . import views
//第一个wzry代表的是浏览器中的路由,第二个views.wzry表示当访问这个路由是处理的函数
urlpatterns = [
url(r'^wzry/$',views.wzry),
url(r'^cjzc/$',views.cjzc),
]
第四步:启动服务,便可在相应的url下返回想要的结果
启动服务·:python3 manage.py runserver 127.0.0.1:8000
3.通过url向视图传参
示例
http://127.0.0.1:8000/wzry/小鲁班(访问显示王者荣耀)
http://127.0.0.1:8000/cjzc/AK-47(访问显示刺激战场)
from django.conf.urls import url
from django.contrib import admin
from . import views
//第一个wzry代表的是浏览器中的路由,第二个views.wzry表示当访问这个路由是处理的函数
urlpatterns = [
url(r'^wzry/(\S{1,})/$',views.wzry),
url(r'^cjzc/(\S{1,})/$',views.cjzc),
]
from django.http import HttpResponse
//给视图处理函数王者荣耀命名为wzry
def wzry(request,zero):
return HttpResponse('王者荣耀里我最喜欢的英雄是:%s'%zero)
//给视图处理函数王者荣耀命名为cjzc
def cjzc(request,hobby):
return HttpResponse('刺激战场里我最擅长的枪是:%s'hobby)
`
此时访问:
http://127.0.0.1:8000/wzry/小鲁班
http://127.0.0.1:8000/cjzc/AK-47
显示:
王者荣耀里我最喜欢的英雄是小鲁班
刺激战场里我最擅长的枪是AK-47
访问
http://127.0.0.1:8000/wzry/狄仁杰
显示:
王者荣耀里我最喜欢的英雄是狄仁杰
注意:
匹配的是字符串
如何需要传多个参数,需在urls和views中添加参数