1、创建views视图
在项目目录上创建views.py文件
2、编写代码测试
views.py
#导入包
from django.httpimport HttpResponse
#定义方法
def index(request):
return HttpResponse("Django项目")
urls.py
from . import views
path('index/',views.index),
3、创建应用
服务器中创建
python manage.py startapp teacher(包名)
4、pycharm中下载至本地
5、URL组成
https://www,baidu.com/web?query=星星
协议 域名(IP+端口) 路径 参数
6、路由系统(URL)
URL配置------>URL路径到视图函数的一个映射
(1)path(route,views,kwargs=None,name=None)
route:字符串,放的是url路径
views:视图
kwargs:额外参数,传入的字典
path('student/',views.student,kwargs={name:XXX}),
name:url命名
path('index/',views.index,name='index'),#name命名,无论url怎么变化,都将跳转至index页面
#name命名法
def login_1(request):
return redirect("index")
(2)通过<>来捕获参数
views.py:
def detail(request,id):
return HttpResponse("{}号学生的详情!".format(id))
urls.py:
path('detail/<id>',views.detail), #<id>用来捕获对应学号的学生
(3)路径转换器
路径转换器用来限制url里面参数的类型;
<转换区:参数>
str:匹配str字符串(默认)
int:匹配整型
urls.py:
path('detail/<int:id>',views.detail), #<id>用来捕获对应学号的学生
(4)重定向操作
views.py:
from django.shortcutsimport redirect
#操作重定向至百度
def test(request):
return redirect("http://www.baidu.com")
urls.py:
path('test/',views.test),#重定向操作,跳转至百度
views.py:
#测试登录成功后跳转至学校官网详情页面
def login(request):
return redirect("/school/")#硬编码,不灵活
urls.py:
path('login/',views.login),#重定向操作,跳转至百度
(5)包含其他URL:include
想要访问目录中其他的APP视图,需要使用include,如果这个路由规则对应的事include,就去找这个include包含的urls,访问的url由你的路由规则决定;
根目录下的urls.py:
#使用include,包含URLconf,访问teacher视图
path('teacher/',include('teacher.urls'))
teacherAPP中的urls:
from django.urlsimport path
from teacherimport views
urlpatterns = [
path('student/',views.student),
path('detail/',views.detail),
]
teacherAPP中的views:
from django.shortcutsimport render
from django.httpimport HttpResponse
# Create your views here.
#学生详情
def student(request):
return HttpResponse("学生详情")
#传入参数
def detail(request,name):
return HttpResponse("{}的成绩信息".format(name))
使用额外参数(在根目录下添加额外参数,相当于默认参数):
#使用include,包含URLconf,访问teacher视图
path('teacher/',include('teacher.urls'),kwargs={'name':'赵子龙'}),#kwargs是额外参数
在APP下的views中,需要添加name参数:
#学生详情
def student(request,name):
return HttpResponse("{}学生详情".format(name))
#传入参数
def detail(request,name):
return HttpResponse("{}的成绩信息".format(name))
(6)指定跳转页面
当想要跳转至指定页面,需要在当前应用下备注应用的名称;
例如:在teacher下,想跳转至student功能页面时候,需要在teacher的urls中添加app_name = 'teacher'(名称自己定,路径后面加name指定信息):
from django.urlsimport path
from teacherimport views
app_name ="teacher"(将app_name加入)
urlpatterns = [
path('student/',views.student,name='student'),
path('detail/',views.detail,name='detail'),
]
(在views中,需要在跳转功能代码中指定名称,“teacher:student”)
from django.shortcutsimport redirect
from django.httpimport HttpResponse
# Create your views here.
#学生详情
def student(request,name):
return HttpResponse("{}学生详情".format(name))
#传入参数
def detail(request,name):
return redirect("teacher:student")