一、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)
]