Django学习笔记:View层传参方法

View层:传参方法

?传参方法

在url后面使用?表示参数,如下:

http://127.0.0.1:8000/?name=klay&age=18

使用方法:

在View视图层使用request.GET.get(arg1,arg2)函数接受参数
Arg1表示参数名字,arg2表示默认值,如果在url处没有传入值,则在django逻辑中设置arg2为默认值

在two应用下对应的view层编写以下代码:

-untitled0
	-two
		views.py
def index(request):

    name = request.GET.get(‘name’, ‘ ‘)
    age = request.GET.get(‘age’, 0)

    return HttpResponse(‘Hello I am {0}, age is {1}.format(name,age))

同时在urls中配置url对应的逻辑:

-untitled0
	-two
		urls.py
from django.conf.urls import url
from .views import index

urlpatterns = [
    url(‘’, index)
]

同时在项目里面配置该应用的url

-untitled0
	-untitled0
		urls.py
from django.contrib import admin
from django.urls import path, include
from two import urls as app_urls
urlpatterns = [
    path(‘admin/, admin.site.urls),
    path(‘’, include(app_urls))
]

把项目run起来,在浏览器输入以下url:
http://127.0.0.1:8000/app/?name=klay&age=18
就可以看到成功打印出一句话:
Hello I am klay, age is 18

/ 传参方法

除了以上在url后使用?传参数,还可以使用/进行参数的传递,规则如下:

http://127.0.0.1:8000/app/klay/30

在使用/识别之前,我们需要了解在django中变量是如何匹配的:

  1. 字符串类型str:name:可以匹配任何非空的字符串(不包括斜杠)
  2. 整型int:age:匹配0和正整数
  3. Slugslug:day:匹配注释
  4. Uuiduuid:uid:匹配一个uuid,格式为xxx-xxx-xxx

我们还是使用之前的匹配方法,但是我们需要修改我们的代码逻辑

在two应用下对应的view层修改原来的代码:
我们在定义函数的时候加多两个参数为name和age,现在我们就不需要使用request.GET去获取参数了,而是使用url处的匹配

-untitled0
	-two
		views.py
def index(request,name,age):

    return HttpResponse(‘Hello I am {0}, age is {1}.format(name,age))

我们在urls文件中修改逻辑,使用django.urls下的path而不是urls

-untitled0
	-two
		urls.py
from django.urls import path
from .views import index

urlpatterns = [
    path('<str:name>/<int:age>', index)
]

现在我们使用http://127.0.0.1:8000/app/klay/18 就会显示出一样的参数匹配结果

Hello I am klay, age is 18

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值