正文
Django的视图与网址之加法计算
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
在最新的Django2.1中,views.py中采用的地址映射方式发生了变化,通过一个加法运算我们来看一看。
方法一:在视图views.py中定义视图逻辑,求解两个数的加法运算:c = a + b,定义一个add()函数
from django.shortcuts import render
from django.http import HttpResponse
from blog import models # 计算求和,网址示例:http://127.0.0.1:8000/add/?a=2&b=4
def add(request):
a = request.GET.get('a', 0)
b = request.GET.get('b', 0)
c = int(a) + int(b)
return HttpResponse(str(c))
注:request.GET类似于一个字典,在此处使用request.GET.get('a', 0)表示在没有传递时,a的默认值是0
在urls.py中,进行地址映射
from django.contrib import admin
from django.urls import path
from blog import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index),
path('add/', views.add, name= 'add'),
]
启动服务,在浏览器中,输入网址:http://127.0.0.1:8000/add/,默认输出值是0
输入网址:http://127.0.0.1:8000/add/?a=3&b=4,输出值是7
方法二:采用正则的表示方法,Django2.1同Django.1.8.x版本不同,采用正则表达时要引入url,在views.py重新定义一个add2
from django.shortcuts import render
from django.http import HttpResponse
from blog import models
# Create your views here. def add2(request, a, b):
c = int(a) + int(b)
return HttpResponse(str(c))
修改urls.py中的内容,引入: from django.conf.urls import url
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from blog import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index),
path('add/', views.add, name= 'add'),
url(r'add/(\d+)/(\d+)/', views.add2, name= 'add2'), # 这里使用了正则表达式进行匹配
]
重启服务,输入网址:http://127.0.0.1:8000/add/3/4/