一、url映射
1、为什么回去urls.py文件中找映射?
在‘settings.py’文件中配置了‘ROOT_URLCONF’为‘urls.py’.所有的django回去urls.py中寻找。
2、在“urls.py”中我们所有的映射,都应该放在变量"urlpatterns"中。
3、所有的映射不是随便写 的,而是用“path”函数或者是“re_path”函数进行包装的。
注意
- 试图函数的第一个参数必须时request。这个参数绝对不能少。
- 试图函数的返回值必须时'django.http.response.HttpResponseBase'的子类的对象。
二、url传递参数
1、采用在url中使用变量的方式:在path的第一个参数中,使用“<参数名>”的方式可以传递参数。然后在视图函数中也要写一个参数,视图函数中的参数必须和url中参数名称保持一致。另外url中可以传递多个参数。
2、采用查询字符串的方式:在url中,不需要单独的匹配查询字符串的部分。只需要在视图函数中使用"request.GET.get('参数名称')"的方式获取。
三、示例代码:
- views.py
from django.shortcuts import render from django.http import HttpResponse # Create your views here. #Url视图映射 def eltmain(requset): return HttpResponse('自动化ETL') #Url视图传参 def eltdetail(requset,etl_id): return HttpResponse(f'当前任务是{etl_id}') #Request传参 def source_detail(request): source_id=request.GET.get('id') return HttpResponse(f'当前来源是{source_id}')
- urls.py
from django.contrib import admin from django.urls import path from django.http import HttpResponse from ETL import views #定义首页 def index(request): return HttpResponse("首页") urlpatterns = [ path('admin/', admin.site.urls), #定义首页 path('',index), #Url视图映射 path('etl/',views.eltmain), #Url视图传参 path('etl/<etl_id>',views.eltdetail), #Request传参 path('sourcedetail/',views.source_detail) ]