Djangoday2第二个app加减法

第二个app 计算

新建一个app

python manage.py startapp jisuan

在view定义显示的内容

加法 通过get请求进行获取数值

from django.shortcuts import render
from django.http import HttpResponse
def add(request):
    a = request.GET['a']     #获取a 默认0
    b = request.GET['b']
    c = int(a)+int(b)
    return HttpResponse(str(c))         #显示c

修改urls指定连接对应的视图

导入app下的视图
路径下引入

from jisuan import views as jisuan_views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('learn/', learn_views.index),
    path('jisuan/add/', jisuan_views.add),
]

测试

启动项目
python manage.py run server

访问

http://127.0.0.1:8000/jisuan/add/?a=66&b=888
#get请求获取参数 必须有两个参数 使用?变量名=值&拼接

另一种通过路径传参的方式

在视图内定义乘法

# 通过路径传参
def mul(repuest,a,b):
    c=int(a)*int(b)
    return HttpResponse(str(c))

访问网址路径传参的urls定义方法

path('jisuan/mul/<int:a>/<int:b>/',jisuan_views.mul),

网址路径传参测试

启动项目
python manage.py run server

访问

http://127.0.0.1:8000/jisuan/mul/4/5/

urls的urlname

urlname是在urls内给访问路径定义的名字

简单说,name 可以用于在 templates, models, views ……中得到对应的网址,相当于“给网址取了个名字”,只要这个名字不变,网址变了也能通过名字获取到。

  • 创建template目录,并在目录下创建jisuanindex.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Luckyness</title>
</head>
<body>
    <a href="/mul/4/5/">计算 4*5</a>
    ***************
    <a href="{%  url 'mul' 4 5  %}">计算 4*5 使用urlname引用 </a>
</body>
</html>
  • 如果网页内的所有url都写死了的话,以后url需要修改,那么就需要对html页面进行很多修改,所以要使用urlname,给urls内的链接起一个别名,方便以后的修改
不带参数的:
{% url 'name' %}
带参数的:参数可以是变量名
{% url 'name' 参数 %} 
例如:
<a href="{% url 'add2' 4 5 %}">link</a>
  • 将html引入网站 render渲染模板

django如何实现跳转

例如某个链接网址变更,但是用户收藏的旧网址
通过在views写一个跳转函数来实现

from django.http import HttpResponseRedirect
from django.urls import reverse

def add2mul(request,a,b):
    return HttpResponseRedirect(
        reverse('mul',args=(a,b))
    )

在urls内增加

  path('add/<int:a>/<int:b>/',jisuan_views.add2mul,name='tiaozhuan')

前端添加一个这样的链接

<a href="/add/4/5/">我的链接本来是/add/4/5/</a>

点击可以跳转到求积

猜你喜欢

转载自www.cnblogs.com/Luckyness/p/9287193.html