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

Django表单仅在我按下提交按钮时显示

,这是因为Django的表单是基于HTTP请求的。当你访问包含表单的页面时,表单会被渲染并显示给用户。但是,直到用户点击提交按钮并发送POST请求时,表单的数据才会被处理和保存。

在Django中,表单的显示和处理是通过视图函数来完成的。当用户访问包含表单的页面时,视图函数会将表单实例化并传递给模板进行渲染。用户填写表单并点击提交按钮后,视图函数会接收到POST请求,并根据请求中的数据对表单进行验证和处理。

要使表单仅在按下提交按钮时显示,可以在模板中使用条件语句来判断是否显示表单。例如,可以使用if语句检查请求的方法是否为POST,如果是POST请求,则显示表单,否则不显示。

下面是一个示例代码:

代码语言:txt
复制
from django.shortcuts import render
from .forms import MyForm

def my_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            # 处理表单数据
            # 保存数据或执行其他操作
            pass
    else:
        form = MyForm()
    
    return render(request, 'my_template.html', {'form': form})

在上面的示例中,视图函数my_view接收到请求后,首先判断请求的方法是否为POST。如果是POST请求,则实例化表单MyForm并传递请求的数据,然后进行表单验证。如果表单验证通过,则可以在处理函数中执行保存数据或其他操作的逻辑。如果请求的方法不是POST,则只实例化表单而不传递任何数据,这样表单就不会显示。

在模板中,可以使用{{ form }}来渲染表单。根据上面的示例,可以在模板中添加如下代码:

代码语言:txt
复制
<form method="post">
    {% csrf_token %}
    {{ form }}
    <input type="submit" value="提交">
</form>

上面的代码中,{{ form }}会渲染表单的所有字段和相应的输入控件。{% csrf_token %}用于防止跨站请求伪造攻击。

关于Django表单的更多信息,你可以参考腾讯云的文档:Django表单

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

相关·内容

  • django 实现简单的搜索功能

    整个搜索的过程如下: 用户在搜素框中输入搜索关键词,假设为 “django”,然后用户点击了搜索按钮提交其输入的结果到服务器 服务器接收到用户输入的搜索关键词 “django” 后去数据库查找文章标题中含有该关键词的全部文章...如果不知道什么是 CSRF 的话也没有关系,只要记住在使用 django ,前端的表单代码里一定要加上 {% csrf_token %} 。...用户输入了搜索关键词并点击了搜索按钮后,数据就被发送给了 django 后台服务器。表单的 action 属性的值为 /search/,表明用户提交的结果将被发送给 /search/ 这个 URL。...用户通过表单提交的数据 django 为我们保存在 request.GET 里,这是一个类似于 Python 字典的对象,所以我们使用 get 方法从字典里取出键 q 对应的值,即用户的搜索关键词。...当然其使用也会复杂一些,以后有机会再写文章向大家介绍 django-haystack 的使用方法。

    12.4K80

    简单全文搜索

    整个搜索的过程如下: 用户在搜素框中输入搜索关键词,假设为 “django”,然后用户点击了搜索按钮提交其输入的结果到服务器。...将关键词提交给服务器 先来回顾一我们的 Django 博客的 Post(文章)模型: blog/models.py class Post(models.Model): # 标题 title...表单的 action 属性的值为 {% url 'blog:search' %}(虽然我们还没有写这个视图函数),表明用户提交的结果将被发送给 blog 应用 search 视图函数对应的 URL。...用户通过表单 get 方法提交的数据 Django 为我们保存在 request.GET 里,这是一个类似于 Python 字典的对象,所以我们使用 get 方法从字典里取出键 q 对应的值,即用户的搜索关键词...渲染搜索结果 接下来就是渲染搜索结果页面,这里我们复用了 index.html 模板,唯一需要修改的地方就是当有错误信息,index.html 应该显示错误信息。

    1.9K60

    DjangoBlog|12 博客文章删除功能(优化版)

    一、前情回顾 在前面,我们完成了Django Blog博客删除博客功能实现,这一节我们讲如何优化博客删除功能。...app和Article模型 Django Blog|04 创建blog视图和完成MVT框架开发 Django Blog|05 修改首页显示博客列表 Django Blog|06 添加博客详情页视图...,显示博客详情 Django Blog|07 引入Bootstrap前端框架,优化页面 Django Blog|08 添加编写+发布博客功能 Django Blog | 09 这么简单!...我们不考虑个人能力问题,我们将原因合并:删除前需要提示用户正在进行删除操作,那这样想,更好的解决方法是,出一个弹框即可,就是当用户点击文章详情页上的删除按钮,先弹出一个弹框提示用户是否要删除对应文章,...-- 添加csrf_token,防止黑客攻击,获取表单提交内容 csrf Cross Site Request Forgery)攻击 跨站请求伪造攻击

    76620

    Django实战笔录(五)——是如何使用Django建立本站的(内附完整代码)

    前言 小文在2018年学习Django的时候,有跟着教程做一个简单的博客demo,过了这么久,最近才想起要开源的事。索性改了项目就直接开源啦。...全局样式 有使用媒体查询优化不同窗口大小时的显示内容,具体表现为自适应wap和pc站点。 文章 文章部分同首页结构基本一致,仅在body部分有些许差异。...body部分左侧栏目则为文章,文章后紧跟分享按钮(暂未实现),然后是文章评论,最后跟着一个提交评论的表单 右侧则多了一个文章目录的小工具,便于读者快速定位到相关段落。...分类、标签 评论 默认使用本站指定的头像,显示名称,评论时间等参数。仅允许一层嵌套。 后台 使用Django-Admin自动生成的后台,基本上没有样式,仅有简答的增删改查,适用于老鸟。...如果你能提交pull request,那是最好不过了。

    89300

    Django教程(二)- Django视图与网址进阶1. HTML表单2.CSRF3.代码操作

    表单使用表单标签 来设置: input elements HTML 表单 - 输入元素 多数情况被用到的表单标签是输入标签()。...(Submit Button) 定义了提交按钮....当用户单击确认按钮表单的内容会被传送到另一个文件。表单的动作属性定义了目的文件的文件名。由动作属性定义的这个文件通常会对接收到的输入数据进行相关的处理。...字段 (只需要在模板里加一个 tag, django 就会自动帮你生成,见下面) 在处理 POST 请求之前,django 会验证这个请求的 cookie 里的 csrftoken 字段的值和提交表单里的...要启用 django.middleware.csrf.CsrfViewMiddleware 这个中间件 再次,在所有的 POST 表单元素,需要加上一个 {% csrf_token %} tag 在渲染模块

    4.3K40

    01.前端之HTML

    表单一般用来收集用户的输入信息     表单工作原理:     访问者在浏览有表单的网页,可填写必需的信息,然后某个按钮提交。这些信息通过Internet传送到服务器上。     ...点击提交按钮,input中type=submit的那个按钮,然后就会将form表单中所有用户输入的内容或者选择的内容({name属性:值,})都发给服务端(以我们自己写的那个socket举例,打印一接收的内容...注意:       form表单提交数据的时候,必须有个submit按钮   下面这个django的示例,等我学django的时候再说吧: from django.conf.urls import url...(等学了form表单之后再学这个)   属性说明: name:表单提交的“键”,注意和id的区别 value:表单提交对应项的值 type="button", "reset", "submit...",为按钮显示的文本年内容 type="text","password","hidden",为输入框的初始值 type="checkbox", "radio", "file",为输入相关联的值 checked

    1.1K20

    Python Django开发 经验技巧总结(一)

    文章目录 1.前后台的数据传递 2.与数据库交互并返回数据的几种比较常用的方法 3.一个表单对应多个按钮解决方案 4.HTML中的表单控件及操作 5.消息框架 message使用 6.日期和时间DateField...取出id和user列,并生成一个列表 models.UserInfo.objects.get(id=1) models.UserInfo.objects.get(user='cucucu') 3.一个表单对应多个按钮解决方案...value是显示的内容,并且后端提交后也将此作为值,其中name是后端获取所用的如后端使用 select = request.POST['select']获取这个单选按钮的value,另外也可以用select...-这就是一个提控件,其中的type='submit'会保证点击后表单()中的内容被提交到后端。...auto_now_add: 设置为True,会在model对象第一次被创建,将字段的值设置为创建的时间,以后修改对象,字段的值不会再更新。该属性通常被用在存储“创建时间”的场景

    1.4K10

    Django 博客实现简单的全文搜索

    整个搜索的过程如下: 用户在搜素框中输入搜索关键词,假设为 “django”,然后用户点击了搜索按钮提交其输入的结果到服务器。...将关键词提交给服务器 先来回顾一我们的 Django 博客的 Post(文章)模型: blog/models.py class Post(models.Model): # 标题 title...用户输入了搜索关键词并点击了搜索按钮后,数据就被发送给了 Django 后台服务器。...表单的 action 属性的值为 {% url 'blog:search' %}(虽然我们还没有写这个视图函数),表明用户提交的结果将被发送给 blog 应用 search 视图函数对应的 URL。...接下来我们做了一个小小的校验,如果用户没有输入搜索关键词而提交表单,我们就无需执行查询,我们给给用户发一条错误提醒消息,这里使用了 django messages 应用,这在 交流的桥梁:评论功能中讲过

    70220

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

    在一个Web 应用中,‘表单’可能指HTML 、或者生成它的Django 的Form、或者提交发送的结构化数据、或者这些部分的总和。...它将显示一个标签为”Your name:”的文本字段,和一个”OK”按钮。如果模板上下文包含一个current_name 变量,它将用于预填充your_name 字段。...="your_name" maxlength="100"> 注意它不包含 标签和提交按钮。...表单和跨站请求伪造的防护 Django 原生支持一个简单易用的跨站请求伪造的防护。当提交一个启用CSRF 防护的POST 表单,你必须使用上面例子中的csrf_token 模板标签。...你可以使用{% for error in field.errors %}自定义错误的显示。 这种情况,循环中的每个对象只是一个包含错误信息的简单字符串。

    4.2K20

    零基础使用Django2.0.1打造在线教育网站(十一):登录页面实现

    (request): # 前端向后端发送的请求方式有两种: get和post # 登录提交表单为post if request.method == "POST":...我们获取登录页面的method是不是为get,在两行返回语句的位置打上断点: [dcf7z9ogss.png] 然后开启debug模式,待网站首页显示出来以后点击登录按钮,可以看到蓝色行跳到render...70行代码: [31c5ukx70s.png] 这就是我们刚才的登录表单提交页面,把第70行的action指向修改一:action="login.html"变成:action="/login/",...我们现在再来测试一,看看获取登录提交表单的method是不是为post,只保留第一行位置上的断点: [hb600ixnmx.png] 然后开启debug模式,待网站首页显示出来以后点击登录按钮,并在表单中输入之前的信息...我们重新开启Debug模式,待网站首页显示出来以后点击登录按钮,并在表单中输入之前的信息,点击提交,页面跳到Pycharm中的pass位置: [4iv4vw16o8.png] 并发现Method就是POST

    1.7K10

    关于“Python”的核心知识点整理大全57

    在请求方法为GET将执行的if代码块中,我们使用实参instance=entry创建一个 EntryForm实例(见2)。这个实参让Django创建一个表单,并使用既有条目对象中的信息填充它。...处理POST请求,我们传递实参instance=entry和data=request.POST(见3),让Django根 据既有条目对象创建一个表单实例,并根据request.POST中的相关数据对其进行修改...然后, 们检查表单是否有效,如果有效,就调用save(),且不指定任何实参(见4)。接下来,我们重 定向到显示条目所属主题的页面(见5),用户将在其中看到其编辑的条目的新版本。 3....我们将提交按钮命名为save changes,以提醒用户:单击该按钮将保存所做的编辑,而不是创建一个新条目(见2)。 4....我们要让登录视图处理表单,因此将实参action设置为登录页面的URL(见2)。登录视图 将一个表单发送给模板,在模板中,我们显示这个表单(见3)并添加一个提交按钮(见4)。

    9410

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

    一个简单表单 更新一在上一个教程中编写的投票详细页面的模板polls/detail.html,让它包含一个HTML 元素: # polls/templates/polls/detail.html...这意味着,当有人选择一个单选按钮提交表单提交,它将发送一个POST数据choice=#,其中# 为选择的Choice的ID。...p.choice_set.get(pk=request.POST['choice']) except (KeyError, Choice.DoesNotExist): # 出现异常重新显示投票表单...上面的try ... except就是用来检查KeyError,如果没有给出choice将重新显示Question表单和错误信息; 在将Choice得票数加1之后,返回一个HttpResponseRedirect...如果提交没有选择任何Choice,应该会看到错误信息。 注: views()视图的代码确实有一个小问题。

    2.4K40

    关于“Python”的核心知识点整理大全55

    在3处,我们获取与该主题相关联的条目, 并将它们date_added排序:date_added前面的减号指定降序排列,即先显示最近的条目。...视图函数new_topic() 函数new_topic()需要处理两种情形:刚进入new_topic网页(在这种情况,它应显示一个 空表单);对提交表单数据进行处理,并将用户重定向到网页topics...对于只是从服务 器读取数据的页面,使用GET请求;在用户需要通过表单提交信息,通常使用POST请求。处理 所有表单,我们都将指定使用POST方法。...用户初次请求该网页,其浏览器将发送GET请求; 用户填写并提交表单,其浏览器将发送POST请求。...由于实例化TopicForm我们没有指定任何实参,Django将创建一个可供用户 填写的空表单。 如果请求方法为POST,将执行else代码块,对提交表单数据进行处理。

    16110

    解决Django提交表单报错:CSRF token missing or incorrect的问题

    1、在Django提交表单时报错:Django提交表单报错: CSRF token missing or incorrect 具体报错页面如下: ?...该表单有一个有效的CSRF令牌。在登录另一个浏览器选项卡或登录后单击back按钮之后,您可能需要使用表单重新加载页面,因为登录后令牌会旋转。...补充知识:Django中csrf token验证原理 多年没维护的博客园,有一篇初学Django的笔记,记录了关于django-csrftoekn使用笔记,当时几乎是照抄官网的使用示例,后来工作全是用的...又有疑问了,同一次登录,form表单中的token每次都会变,而cookie中的token不便,django把那个salt存储在哪里才能保证验证通过呢。 直到看到源码。...以上这篇解决Django提交表单报错:CSRF token missing or incorrect的问题就是小编分享给大家的全部内容了,希望能给大家一个参考。

    4.9K30

    Chrome开发者工具指北

    其实不仅在 Chrome 上有,基本上所有的现代浏览器都带这个工具。它是调整样式、调试 JS、查看前后端收发数据的不二神器。...审查元素,或者叫检查 呼出以后会显示在页面的下方,如果觉得这样太扁不方便看信息,可以点右上角三个点的按钮调整布局,分别是新窗口打开、靠在左侧、靠在下方,靠在右侧: 可以看到工具的顶栏有很多标签:本文先介绍最常用也是最重要的...查看请求详情 举例来说,比如现在开发了博客的评论功能,想知道发送评论是否正常工作。...那么打开 Network 面板,在页面中添加一条评论并提交,在 Network 中就应该能看到一条请求的记录,为防止页面刷新记录丢失,可以勾选上 Preserve 框: 如果列表已经太多内容可以点击清空按钮...: 请求头 Request Body: 请求体,如果是 form 表单显示发送表单的内容 这样你就可以知道浏览器发了什么给服务器,又从服务器收到了什么内容。

    36020
    领券