zoukankan      html  css  js  c++  java
  • Django的视图与网址之加法计算

    在最新的Django2.1中,views.py中采用的地址映射方式发生了变化,通过一个加法运算我们来看一看。

    方法一:在视图views.py中定义视图逻辑,求解两个数的加法运算:c = a + b,定义一个add()函数

     1 from django.shortcuts import render
     2 from django.http import HttpResponse
     3 from blog import models
     4 
     5 # 计算求和,网址示例:http://127.0.0.1:8000/add/?a=2&b=4
     6 def add(request):
     7     a = request.GET.get('a', 0)
     8     b = request.GET.get('b', 0)
     9     c = int(a) + int(b)
    10     return HttpResponse(str(c))

    注:request.GET类似于一个字典,在此处使用request.GET.get('a', 0)表示在没有传递时,a的默认值是0

    在urls.py中,进行地址映射

    1 from django.contrib import admin
    2 from django.urls import path
    3 from blog import views
    4 urlpatterns = [
    5     path('admin/', admin.site.urls),
    6     path('index/', views.index),
    7     path('add/', views.add, name= 'add'),
    8 ]

    启动服务,在浏览器中,输入网址: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

    1 from django.shortcuts import render
    2 from django.http import HttpResponse
    3 from blog import models
    4 # Create your views here.
    5 
    6 
    7 def add2(request, a, b):
    8     c = int(a) + int(b)
    9     return HttpResponse(str(c))

    修改urls.py中的内容,引入:from django.conf.urls import url

     1 from django.contrib import admin
     2 from django.urls import path
     3 from django.conf.urls import url
     4 from blog import views
     5 urlpatterns = [
     6     path('admin/', admin.site.urls),
     7     path('index/', views.index),
     8     path('add/', views.add, name= 'add'),
     9     url(r'add/(d+)/(d+)/', views.add2, name= 'add2'),  # 这里使用了正则表达式进行匹配
    10 ]

    重启服务,输入网址:http://127.0.0.1:8000/add/3/4/

  • 相关阅读:
    Android中Alarm的机制
    String字符串操作--切割,截取,替换,查找,比较,去空格.....
    时间类(时间戳的各种转换成)
    android 常用时间格式转换代码
    Android时间戳与字符串相互转换
    Android时间对话框TimePickerDialog介绍
    一种基于Qt的可伸缩的全异步C/S架构server实现(一) 综述
    C++ overloading contructor
    特征生成
    Atitit.软件仪表盘(2)--vm子系统--资源占用监測
  • 原文地址:https://www.cnblogs.com/demo-deng/p/7776817.html
Copyright © 2011-2022 走看看