Django(9)-表单处理

这篇具有很好参考价值的文章主要介绍了Django(9)-表单处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

django支持使用类创建表单实例
polls/forms.py

from django import forms
class NameForm(forms.Form):
    your_name=forms.CharField(label="Your name",max_length=100)

这个类创建了一个属性,定义了一个文本域,和它的label和最大长度。

polls/views.py

def name(request):
    #定义了一个form传给name.html模板,在模板中就不需要定义form的具体字段了
    form=NameForm()
    return render(request,"polls/name.html",{"form":form})

在视图函数中定义name函数,创建了一个空的NameForm实例,并将这个form实例渲染给模板的form字段

模板

在模板中可以直接使用双引号引用这个form,而不需要再定义html input标签。

<form action=""{% url 'polls:yourname' %}" method="post">
    {% csrf_token %}
    {{ form }}
    <input type="submit" value="Submit">
</form>

这个模板会将实例from渲染出来如下图。
Django(9)-表单处理,Django,django

表单处理函数,将提交数据传给form,并使用方法is_valid()校验表单有效性。这个方法会返回 True
并将表单的数据放到它的属性 cleaned_data 中。

def get_name(request):
    if request.method=="POST":
        form=NameForm(request.POST)
        if form.is_valid():
            return HttpResponseRedirect("/thanks/")
    else:
        form=NameForm()
        return render(request,"name.html",{"form":form})

form = NameForm(request.POST) 这叫“绑定数据到表单” (现在它是一张 绑定的 表单)。
已验证的表单数据将被放到 form.cleaned_data 字典中。这里的数据已经很好的为你转化为Python类型。
可以直接从表单中取值:subject = form.cleaned_data[“subject”]
当然也可以直接从request.POST取值,但是不推荐,因为这样的数据没有经过验证。

在Django中使用表单可以方便地处理用户输入和数据验证。以下是在Django中使用表单的一般步骤:

  1. 定义表单类:在你的Django应用程序中,创建一个用于表示表单的类。这个类通常继承自django.forms.Form类,并定义表单需要包含的字段。
from django import forms

class MyForm(forms.Form):
    field1 = forms.CharField(max_length=100)
    field2 = forms.EmailField()
    # 添加其他字段...
  1. 创建表单实例:在需要显示表单的视图函数中,创建表单的实例,并将其传递给模板。
def my_view(request):
    form = MyForm()
    return render(request, 'my_template.html', {'form': form})
  1. 编写HTML模板:创建一个模板来显示表单,并将表单字段的HTML代码插入到适当的位置。
<form method="post" action="{% url 'my_form_url' %}">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">提交</button>
</form>

这里form.as_p可以将表单渲染为段落形式的HTML。你还可以使用form.as_tableform.as_ul等方法来渲染表单。

  1. 处理表单提交:在接收到表单提交的视图函数中,需要处理用户提交的数据,进行数据验证和处理。
def my_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            # 处理表单数据...
            return HttpResponseRedirect('/success/')
    else:
        form = MyForm()
    return render(request, 'my_template.html', {'form': form})

在这个示例中,我们首先检查请求方法是否为POST,然后使用用户提交的数据实例化表单对象。然后,我们调用form.is_valid()来验证表单数据是否有效。如果表单数据有效,则可以进行处理,例如保存到数据库或执行其他操作。如果表单数据无效,则需要返回一个包含验证错误信息的表单给用户重新填写。

以上是基本的使用表单的步骤,你可以根据自己的需求和业务逻辑进行相应的定制和扩展。文章来源地址https://www.toymoban.com/news/detail-686355.html

到了这里,关于Django(9)-表单处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Django学习笔记-表单(forms)的使用

    在Django中提供了了form表单,可以更为简单的创建表单模板信息,简化html的表单。 表单通常用来作为提交数据时候使用。 在项目文件夹下创建一个template文件夹,用于存储所有的html模板文件。 填写项目的相对路径即可。 在app中views.py文件中添加响应函数: 在urls.py添加路由设

    2024年02月15日
    浏览(48)
  • Django Form实现表单使用及应用场景

    首先需要定义一个使用场景: 音乐网站的前端部分可以添加上传歌手的单曲, 这个添加页面就使用django form表单来实现。 目录 数据表内容 歌手表及表模型 单曲表及表模型 演示表单使用 设置路由 创建form.py 视图实例化表单类 模板使用表单对象 表单使用进阶 优化表单类 视

    2024年02月09日
    浏览(40)
  • 一个月学通Python(十八):Django表单的应用(Web开发)

    结合自身经验和内部资料总结的Python教程,每天3章,1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 我们继续来完成上一章节中的项目,实现“用户注册”和“用户登录”的功

    2024年02月16日
    浏览(65)
  • Django实现用户注册登录,表单提交后跳转网页(学习笔记)

    效果图如下:   使用命令提示符,进入想存放项目的目录: 在项目coco目录下新建static文件夹,用于存放网页文件的css,js,imgs 在coco_app目录下新建文件夹templates,用于存放需要用到的HTML网页 打开coco文件夹中的settings.py注册coco_app 引用templates 连接数据库,这里我用的MySQL数据

    2023年04月11日
    浏览(82)
  • 介绍下Django中的表单(forms)模块中的类forms.CharField

    在Django中, forms.CharField() 是用于定义表单字段的类,它属于 Django 的表单(forms)模块。 CharField 是用于处理字符型数据的表单字段类。它允许用户在表单中输入文本数据,并对该数据进行验证和处理。 forms.CharField() 的一般语法如下: 下面是一些常用参数的解释: max_length :

    2024年02月14日
    浏览(41)
  • 【Django 网页Web开发】07. 快捷的表单生成 Form与MoudleForm(保姆级图文)

    欢迎关注 『Django 网页Web开发』 系列,持续更新中 欢迎关注 『Django 网页Web开发』 系列,持续更新中 快捷的表单生成,避免繁琐的写法。 如果有很多字段要显示,明显是比较麻烦的,而且也存在安全的问题,一般只是初学数据库传值的时候使用,后面都不用。 view.py testOr

    2024年02月07日
    浏览(41)
  • Django的数据库操作模型的字段参数blank和null有什么区别?什么叫表单验证?

    在Django的数据库操作模型中,字段参数 blank 和 null 用于定义模型字段的验证规则和数据库约束。它们的区别如下: blank :这个参数用于验证表单数据的有效性。当字段的 blank 参数设置为 True 时,表明该字段可以为空值或者不填写任何内容,不会触发验证错误。换句话说,

    2024年02月11日
    浏览(42)
  • django处理分页

    当数据库量比较大的时候一定要分页查询的 在django中操作数据库进行分页 这个分页插件要实现的是如下效果,当前页和前5页,后5页,上一页和下一页,还有首页和尾页 在app01下创建一个分页的的工具类,pagination.py pagination.py的内容: 在初始化函数中,需要的参数有 reques

    2024年02月14日
    浏览(41)
  • Django --上下文处理器

    Django 的上下文处理器是一些函数,它们将变量添加到每个 Django 模板的上下文中,从而使模板可以访问这些变量。它们是在 Django 模板渲染过程中调用的,通常是在视图函数中返回渲染模板时调用的。 上下文处理器可以包含在 Django 项目中的任何应用程序中,并且可以在设置

    2024年02月05日
    浏览(43)
  • Django笔记三十一之全局异常处理

    本文首发于公众号:Hunter后端 原文链接:Django笔记三十一之全局异常处理 这一篇笔记介绍 Django 的全局异常处理。 当我们在处理一个 request 请求时,会尽可能的对接口数据的格式,内部调用的函数做一些异常处理,但可能还是会有一些意想不到的漏网之鱼,造成程序的异常

    2023年04月26日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包