首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

尝试在按钮提交时调用Django视图并重定向到同一页(重新加载)

在按钮提交时调用Django视图并重定向到同一页(重新加载),可以通过以下步骤实现:

  1. 首先,在Django项目中创建一个URL路由,将其映射到一个视图函数。在项目的urls.py文件中添加以下代码:
代码语言:txt
复制
from django.urls import path
from . import views

urlpatterns = [
    path('submit/', views.submit_view, name='submit'),
]
  1. 在视图函数中,处理按钮提交的逻辑并进行重定向。在项目的views.py文件中添加以下代码:
代码语言:txt
复制
from django.shortcuts import redirect, render

def submit_view(request):
    if request.method == 'POST':
        # 处理按钮提交的逻辑
        # ...

        # 重定向到同一页(重新加载)
        return redirect(request.path)
    
    return render(request, 'submit.html')
  1. 在HTML模板中,创建一个表单,并将表单的提交动作指向上述URL路由。在submit.html文件中添加以下代码:
代码语言:txt
复制
<form method="post" action="{% url 'submit' %}">
  {% csrf_token %}
  <!-- 表单字段 -->
  <!-- ... -->
  <button type="submit">提交</button>
</form>

以上代码中,{% url 'submit' %}用于生成表单提交的URL,{% csrf_token %}用于防止跨站请求伪造。

这样,当用户点击提交按钮时,将会调用Django视图函数submit_view,处理按钮提交的逻辑,并重定向到同一页(重新加载)。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django内置的通用类视图CBV及示例

自带的view如下表所示: 类名 功能 例子 View 基本View, 可以在任何时候使用 见后面详细介绍 RedirectView 重新定向其他URL 将访问"/log-in/"的用户重新定向"/...显示表单的视图,验证错误时,重新显示表单并显示错误信息;成功,重定向一个新的URL....方法: get_success_url():决定在表单成功验证后重定向的URL,默认返回success_url. form_valid(form):表单验证成功后调用该方法(注意并没有对数据进行操作...,并重定向get_success_url(),可以覆盖该方法以上行为之间添加额外的动作.该方法必须返回一个HttpResponse. form_invalid(form):如果表单验证失败,则使用已填充的表单数据和错误信息重新渲染上下文...显示确认页面并删除现有对象的视图.仅当请求方法为POST,才会删除给定的内容.如果此视图是通过GET提取的,它将显示一个确认页面,其中包含POST同一网址的表单.

3.2K10

评论

我们知道每一个 URL 对应着一个 Django视图函数,于是 Django 调用这个视图函数,我们视图函数中写上处理用户通过表单提交上来的数据的代码,比如验证数据的合法性并且保存数据数据库中,...评论视图函数 当用户提交表单中的数据后,Django 需要调用相应的视图函数来处理这些数据,下面开始写我们视图函数处理逻辑: comments/views.py from django.shortcuts...# 重定向 post 的详情,实际上当 redirect 函数接收一个模型的实例,它会调用这个模型实例的 get_absolute_url 方法, # 然后重定向 get_absolute_url...,重定向文章详情。...class="text"> {{ comment.text }} {% empty %} 暂无评论 {% endfor %} 接下来尝试详情下的评论表单提交一些评论数据

3.1K60
  • Django 2.1.7 视图 - HttpResponse对象、子类JsonResponse、子类HttpResponseRedirect

    如果使用这种方式构造一个漂亮丰富的页面,对于开发人员真是会发疯,于是就有了下面的方式: 调用模板 可以将html、css、js定义一个html文件中,然后由视图调用。...调用模板简写函数render 每次调用模板都要执行加载、上下文、渲染三个步骤,为了简化操作,Django定义了render()函数封装了以上三个步骤的代码,定义django.shortcuts模块中...好了,这里就可以点击json1面中的按钮,通过ajax获取json2的json返回数据了。 如下: ? ajax代码执行过程如下: 1.发起请求。 2.服务器端视图函数执行。...重定向简写函数redirect django.shortcuts模块中为重定向类提供了简写函数redirect。...1)修改assetinfo/views.py文件中red1视图,代码如下: from django.shortcuts import redirect # 定义重定义向视图,转向刚刚创建的json1

    1.3K20

    django之评论系统及多级评论

    我们知道每一个 URL 对应着一个 Django视图函数,于是 Django 调用这个视图函数,我们视图函数中写上处理用户通过表单提交上来的数据的代码,比如验证数据的合法性并且保存数据数据库中,...评论视图函数 当用户提交表单中的数据后,Django 需要调用相应的视图函数来处理这些数据,下面开始写我们视图函数处理逻辑: comments/views.py from django.shortcuts...# 重定向 post 的详情,实际上当 redirect 函数接收一个模型的实例,它会调用这个模型实例的 get_absolute_url 方法, # 然后重定向 get_absolute_url...,重定向文章详情。...class="text"> {{ comment.text }} {% empty %} 暂无评论 {% endfor %} 接下来尝试详情下的评论表单提交一些评论数据

    6.9K61

    Django 1.10中文文档-第一个应用Part4-表单和通用视图

    这意味着,当有人选择一个单选按钮提交表单提交,它将发送一个POST数据choice=#,其中# 为选择的Choice的ID。...现在,创建一个Django视图来处理提交的数据,Part3中已经创建了一个URLconf ,包含这一行: # polls/urls.py url(r'^(?...当对Question进行投票后,vote()视图将请求重定向Question的结果界面。... 现在,浏览器中访问/polls/1/然后为Question投票。应该看到一个投票结果页面,并且每次投票后都会更新。 如果提交没有选择任何Choice,应该会看到错误信息。...如果您的网站的两位用户尝试完全相同的时间投票,这可能会出错。这被称为竞争条件。

    2.4K40

    第 14 篇:交流的桥梁“评论功能”—— HelloDjango 系列教程

    我们知道每一个 URL 对应着一个 django视图函数,于是 django 调用这个视图函数,我们视图函数中写上处理用户通过表单提交上来的数据的代码,比如验证数据的合法性并且保存数据数据库中,...action 指定表单内容提交的地址,这里我们提交给 comments:comment 视图函数对应的 URL(后面会创建这个视图函数并绑定对应的 URL),模板标签 url 的用法 分类、归档和标签...可以看到表单渲染出来的结果了: 评论视图函数 当用户提交表单中的数据后,django 需要调用相应的视图函数来处理这些数据,下面开始写我们视图函数处理逻辑: from blog.models import...的详情,实际上当 redirect 函数接收一个模型的实例,它会调用这个模型实例的 get_absolute_url 方法, # 然后重定向 get_absolute_url 方法返回的...,页面就跳转到了被评论文章的详情,说明视图正确执行了保存表单数据数据库的逻辑。

    1.7K20

    django 1.8 官方文档翻译: 1-2-4 编写你的第一个Django应用,第4部分

    这意味着,当有人选择了一个单选按钮提交了表单,将会发送 的 POST 数据是 choice=3。这是 HTML 表单中的基本概念。...总之,所有的 POST form 针对内部的 URLs 都应该使用 {% csrf_token %} 模板标签。 现在,让我们来创建一个 Django 视图来处理提交的数据。 记得吗?...该重定向 URL 会调用 ‘results’ 视图并显示最终页面。 正如在教程 第3部分提到的,request 是一个 HttpRequest 对象。...当有人投票后,vote() 视图会重定向投票结果。...通常情况下,当你编写一个 Django 应用时,你会评估下通用视图是否适合解决你的问题, 如果适合你就应该从一开始就使用它,而不是进行一半才重构你的代码。

    1.5K10

    Django | 页面数据的缓存与使用

    使用Redis数据库 使用redis数据库存储缓存,首先redis是key-value类型的数据库,NoSQL,且也是内存型数据库,redis是将数据加载到内存中,进行操作,并异步将数据备份硬盘里。...例子 视图类或视图函数中,首先先别急着计算页面数据;而是先向缓存读取该页面的数据;若返回一个None;说明没有缓存或缓存的数据已经过期;此时才需要进行数据库查询等计算服务 并将更新后的数据写入缓存中,...自始至终同一面都统一使用一个key进行存取或删除; # 缓存的设置与获取 伪代码: content= cache.get(‘index_data’) if content is None:   ...如在django自带的管理页面中,当模型发生修改时,会默认调用admin.ModelAdmin的save_model 或 delete_model 方法。...因此,继承并重写该方法,并在里面添加 删除缓存的代码,则网站管理员通过自带管理页面修改数据,旧的页面缓存会被清除 如: class BaseModel(admin.ModelAdmin):

    1.9K40

    Django快速入门——投票程序(4,6)表单&界面、风格

    这意味着,当有人选择一个单选按钮提交表单提交,它将发送一个POST数据 choice=# ,其中#为选择的Choice的ID。这是 HTML表单的基本概念。...Django 自带了一个非常有用的防御系统。简而言之,所有针对内部URL的POST表单都应该使用 {% csrf_token %}模板标签。 现在,让我们来创建一个Django视图来处理提交的数据。...视图将请求重定向Question的结果界面。...如果你提交没有选择任何 Choice,你应该看到错误信息。 我们的 vote() 视图代码有一个小问题。...如果网站有两个方可同时投票 同一间 ,可能会导致问题。同样的值,42,会被 votes 返回。然后,对于两个用户,新值43计算完毕,并被保存,但是期望值是44。这个问题被称为 竞争条件 。

    25220

    Django内置的通用类视图及实例

    显示表单的视图,验证错误时,重新显示表单并显示错误信息;成功,重定向一个新的URL....方法: get_success_url():决定在表单成功验证后重定向的URL,默认返回success_url. form_valid(form):表单验证成功后调用该方法(注意并没有对数据进行操作...,并重定向get_success_url(),可以覆盖该方法以上行为之间添加额外的动作.该方法必须返回一个HttpResponse. form_invalid(form):如果表单验证失败,则使用已填充的表单数据和错误信息重新渲染上下文...显示确认页面并删除现有对象的视图.仅当请求方法为POST,才会删除给定的内容.如果此视图是通过GET提取的,它将显示一个确认页面,其中包含POST同一网址的表单....delete()方法,然后重定向success_url.

    2.9K40

    django 1.8 官方文档翻译: 5-1-1 使用表单

    使用表单 关于这文档 这文档简单介绍Web 表单的基本概念和它们Django 中是如何处理的。关于表单API 某方面的细节,请参见表单 API、表单的字段和表单和字段的检验。...另一个方面,GET 适合网页搜索这样的表单,因为这种表示一个GET 请求的URL 可以很容易地作为书签、分享和重新提交Django 表单中的角色 处理表单是一件很复杂的事情。...Django 会处理表单工作中的三个显著不同的部分: 准备并重新构造数据 为数据创建HTML 表单 接收并处理客户端提交的表单和数据 可以手工编写代码来实现,但是Django 可以帮你完成所有这些工作。...当我们处理表单,我们一般视图中实例化它。...我们必须自己模板中提供它们。 视图 发送给Django 网站的表单数据通过一个视图处理,一般和发布这个表单的是同一视图。这允许我们重用一些相同的逻辑。

    4.2K20

    Django项目开发(三)

    )-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集一个部件里面,改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑...View(视图)显示数据(数据库记录)。 Controller(控制器)处理输入(写入数据库记录)。...添加书籍 任何开发都是先编写后端,配置路由,最后渲染前端页面 从View.py开始 添加书籍的本身就是一个提交的过程,所以是POST请求,不是get请求 from django.shortcuts...into front_book_manager(id,name,author) values(null,'%s','%s')" % (name,author)) # redirect 重新定向...post请求,将数据写进数据库,然后在从数据库拿到数据,重定向首页,刚刚添加的图书就可以显示 urls.py配置路由 path('add_book/', views.add_book,name='add_book

    58520

    Django视图

    500错误及视图 视图中代码运行报错会发生500错误,调用内置错误视图,使用templates/500.html模板渲染。...浏览器中给出地址发出请求采用get方式,如超链接。 浏览器中点击表单的提交按钮发起请求,如果表单的method设置为post则为post请求。...如果使用这种方式构造一个漂亮丰富的页面,对于开发人员真是会发疯,于是就有了下面的方式: 调用模板 可以将html、css、js定义一个html文件中,然后由视图调用。...此时不需要重新编写列表的代码,而是转到这个视图就可以,此时就需要模拟一个用户请求的效果,从一个视图转到另外一个视图,就称为重定向。...重定向简写函数redirect django.shortcuts模块中为重定向类提供了简写函数redirect。 1)修改booktest/views.py文件中red1视图,代码如下: ? ?

    4.5K20

    03.Django基础三之视图函数

    然后,Django加载相应的视图,将这个HttpRequest对象作为第一个参数传递给视图函数。   每个视图负责返回一个HttpResponse对象。 ?   ...django1.3之前,generic view也就是所谓的通用视图,使用的是function-based-view(fbv),亦即基于函数的视图。...一点击提交按钮,你看一下network里面发送了几个请求:两个请求,一个是login请求,一个index请求。 ? ?       ...# 并且大家注意一个问题昂:redirect('/login/')如果你重定向到你当前这个函数对应的路径下,你想想是什么想过,一直重定向自己的这个网址,浏览器会报错,当然这个注册登陆面不会出现这个报错的情况...临时重定向(响应状态码:302)和永久重定向(响应状态码:301)对普通用户来说是没什么区别的,它主要面向的是搜索引擎的机器人。 A页面临时重定向B页面,那搜索引擎收录的就是A页面。

    5K30

    Django MVT之V

    URL参数 进行url匹配,把所需要传递的参数设置成一个正则表达式组,Django框架就会自动把匹配成功后相应组的内容作为参数传递给视图函数。...视图的第一个参数必须是HttpRequest对象(一般定义视图,参数写request),django.http模块中定义了HttpRequest对象的API。...浏览器中给出地址发出请求采用get方式,如超链接。 浏览器中点击表单的提交按钮发起请求,如果表单的method设置为post则为post请求。...Django中提供了HttpResponseRedirect对象实现重定向功能,这个类继承自HttpResponse,被定义django.http模块中,返回的状态码为302。...('/index') django.shortcuts模块中为重定向类提供了简写redirect函数。

    1.9K20

    Django小总结

    是MVT的核心,负责接受请求,获取数据,返回结果 T表示template 负责呈现内容浏览器 如果我Django中想使用mysql该怎么配置 源代码路径:E:\enlev\django\Lib...b) 应用路由 应用文件夹的根目录创建一个py文件,用于存放整个应用的应用路由,一般建议命名为urls.py,不建议项目路由中配置应用路由信息 c) 视图函数 django中,视图对WEB请求进行回应接收...'^detail/(\d+)$',views.detail)路由对应的视图函数detail就必须具备一个参数 模板如何使用 a)加载模板流程 1.加载模板 temp = loader.get_template...视图中通过创建视图函数来给模板传递参数 c)模板中如何编写页面跳转 详情 新建工程步骤 1.创建项目 2.创建应用 3.创建模型...视图函数如何传递多个参数 视图函数想要传递多个参数只需要在urls路由表给url后面第一个参数正则表达式后面多写几个/第一个参数/第二个参数/第三个参数/ 完成这个配置需要注意的是 视图的def

    1K20

    Django 博客单元测试:测试评论应用

    提交的内容合法,则创建评论,用户被重定向回被评论文章的详情,页面中包含评论成功的消息提醒。...请修改表单中的错误后重新提交。')...test_valid_comment_data 中,我们构造合法的评论内容并提交,预期结果是评论提交成功后重定向被评论文章的详情,所以使用了 assertRedirects 进行断言。...由于评论成功后需要重定向,因此传入 follow=True,表示跟踪重定向,因此返回的响应,是最终重定向之后返回的响应(即被评论文章的详情),如果传入 False,则不会追踪重定向,返回的响应就是一个响应码为...基本套路就是代替 django 视图函数自动渲染模板内容的过程,手工构造一个包含待测试模板标签的模板,然后手工渲染其内容,断言渲染后的内容是否包含预期的内容。

    54930

    37.Django1.11.6文档

    这个函数避免了我们视图函数中硬编码URL。 它需要我们给出我们想要跳转的视图的名字和该视图所对应的URL模式中需要给该视图提供的参数。重定向的URL将调用'results'视图来显示最终的页面。...限制对登录用户的访问 原始方式 限制访问页面的简单原始方法是检查request.user.is_authenticated,并重定向登录页面: from django.conf import settings...简单的方法就是视图中直接运行你对request.user的测试。 例如,视图检查用户的邮件属于特定的地址(例如@example.com),若不是,则重定向登录页面。...当调用django.contrib.auth.authenticate() — 如何登入一个用户中所描述的 — Django尝试所有的认证后端进行认证。 ...只需一个视图调用request.session的set_test_cookie()方法,并在接下来的视图调用test_cookie_worked() —— 不是同一视图调用

    24.3K80

    接口测试平台代码实现14:注册功能和后台管理

    调用django的内部函数auth.logout函数 来实现退出功能。 给用户跳转到登陆面。...开始实现: 这里我们是可以直接用HttpResponseRedirect重定向函数 给直接重定登陆面/login/的。...因我前面讲了,如果是a标签的href 或者form表单提交 这种会触发页面刷新的情况,后端函数都可以直接让用户重定向。但是如果是异步请求$.get() 则不可以。...我们现在确保服务启动中,刷新页面,可以尝试一下。 结果是的确退出了,并且自动跳回到登陆面! 非常迅速,cookie全自动清楚了。...不信你不点登陆,直接进入/home/看看能不能进去,肯定进不去然后又自动回到登陆面。 看了看进度条,今天内容貌似有点少。 接下来我们要讲讲django的自带后台!

    62840
    领券