django -- url (模版语言 {% url 'test1' param1=5 param2=6 %})

如果想让form表单提交的url是类似 action="/index-5-6.html" 这样的,可以在html模版语言中使用{% url ‘test1‘ param1=5 param2=6 %}

urls.py

from django.conf.urls import url, include
from mytest import views

urlpatterns = [
    url(r‘^index-(?P<param1>\d+)-(?P<param2>\d+).html‘, views.index, name=‘test1‘),
]

views.py

from django.http import HttpResponse
from django.shortcuts import render
from django.views import View

def index(req, param1, param2):
    return render(req, ‘index.html‘)

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <form action="{% url ‘test1‘ param1=5 param2=6 %}" method="post">
        <input type="text" name="A" />
        <input type="submit" name="b" value="提交" />
    </form>
</body>
</html>

注:

这种方式只能返回一个写死的url,不管前端访问时传过来的是什么,form表单提交的url都是固定的。按上面的例子,提交的url始终都是 action="/index-5-6.html"

如果想返回和request.path_info效果一样的url,可以使用reverse。

urls.py

from django.conf.urls import url
from mytest import views

urlpatterns = [
    url(r‘^index-(?P<param1>\d+)-(?P<param2>\d+).html‘, views.index, name=‘test1‘),
]

views.py

from django.http import HttpResponse
from django.shortcuts import render

def index(req, param1, param2):
    from django.urls import reverse
    x = reverse(‘test1‘, kwargs={‘param1‘: param1, ‘param2‘: param2})
    return render(req, ‘index.html‘, {‘url1‘: x, })

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <form action="{{ url1 }}" method="post">
        <input type="text" name="A" />
        <input type="submit" name="b" value="提交" />
    </form>
</body>
</html>

  

django -- url (模版语言 {% url 'test1' param1=5 param2=6 %})

时间: 2024-10-13 21:31:55

django -- url (模版语言 {% url 'test1' param1=5 param2=6 %})的相关文章

Django模版语言

Django模版语言 常用语法 只需要记两种特殊符号: {{ }}和{% %} 变量相关的用{{}},逻辑相关的用{% %} 变量 {{ name }} --->变量 变量名由字母数字和下划线组成. 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值. 例子: view中的代码: def template_test(request): l = [11, 22, 33] d = {"name": "alex"} class Person(object):

Django - 环境搭建、url、视图、模板、标签、过滤器

(一).简介 简介就不多说了,网上的内容一大堆.总结来说,django是走大而全的路线,写项目超级快,几乎什么都为你考虑到了,你就乖乖照着它的格式来写就行了. 这里来一些基本认知: web应用框架(web application framework)是一种开发框架,用来支持动态网站.网络应用程序以及网络服务的开发. http服务器:用来接受用户的请求,并将请求转发给web应用框架进行处理.web应用框架处理完以后再发送给http服务器,http服务器再返回给用户. 但是,项目真要做大了,djan

Django:视图和URL配置

一.视图 1.在mysite文件夹下.创建views.py文件(文件名称没有特别的要求): from django.http import HttpResponse def hello(request): return HttpResponse("Hello world") 2.改动mysite文件夹下的urls.py文件: from django.conf.urls import url from django.contrib import admin from mysite.vie

Django入门(六) &nbsp; 动态URL

多级url虽然可以在多个app的时候将各个应用进行归类.现在有这么一种情况,就是app01里面的views.py里面定义了大量的函数.这样的话我们势必要在app01的urls.py里也要根据函数的数量编辑绑定信息.一个函数一条绑定的信息的对应写下去.为了避免这种可怕的事情,我们就需要使用动态url来处理这种请求.所谓的动态url就是可以通过正则表达式匹配用户输入的url内容,将url当做参数传递给后端的python函数进行处理. 首先我们在app01应用的views.py文件里新建一个函数dyn

Django——如何处理请求(URL配置和视图)

URLconfig—— 为了绑定视图函数和URL,我们使用URLconf. URLconf 就像是 Django 所支撑网站的目录. 它的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表. 你就是以这种方式告诉 Django,对于这个 URL 调用这段代码,对于那个 URL 调用那段代码. 例如,当用户访问/foo/时,调用视图函数foo_view(),这个视图函数存在于Python模块文件view.py中. 当访问 URL /hello/ 时,Django 根据 ROOT

Django入门(五) &nbsp; 多级URL和默认URL

django中我们发布app01应用的使用的index.html,首先需要在myjango子目录的urls文件中去编辑url的路由     这种情况适用于应用较少的时候.加入我们不只有app01,后面还有很多很多app的时候.如果将这些路由都写入到子目录mudjango目录下的url就显得非常混乱了.这时使用多级url就是一个比较好的解决方案. 首先再创建一个名字叫app02的应用 在命令行下输入 python manager.py startapp app02 第二步.在template目录下

[django]用requests从url获取图片(数据类型是bytes)后如何在template中显示出来

今天在做一个注册页面的时候遇到了一个验证码图片在页面显示的问题. 我用requests从一个url上获取到一张图片, 没有保存到本地, 而是想直接作为render的字典参数,传到页面里进行渲染.因为requests.get(url)得到的response.content是bytes, 无法像jpg等本地图片文件直接加到<img src="">中, 我的代码是这样的: 1 def get_captcha(request): 2 CAPTCHA_URL = "http

Django 的路由层URL

URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码. 其实你运行这个django项目首先进入的就是urls中  由urls来决定你下一步的走向 urlpatterns = [ path(正则表达式, views视图函数,参数,别名), ] 参数说明: 一个正则表达式字符串 一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串

Django基础二之URL路由系统

一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码. 基本格式  from django.conf.urls import url #循环urlpatterns,找到对应的函数执行,匹配上一个路径就找到对应的函数执行,就不再往下循环了,并给函数传一个参数request,和