Django学习笔记(二)视图函数

时间:2022-09-26 19:16:14

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