django表单

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

表单<form>...</form>可以收集其内部标签中的用户输入,然后将数据发送到服务端。

一个HTML表单必须指定两样东西:

目的地:用户数据发送的目的URL
方式:发送数据所使用的HTTP方法

form元素内部还定义了一个说明标签<label>和一个发送按钮‘submit’,以及最关键的接收用户输入的<input>元素。
例如,Django Admin站点的登录表单包含几个<input>元素:type="text"用于用户名,type="password"用于密码,type="submit"用于“登录"按钮。它还包含一些用户看不到的隐藏的文本字段,Django 使用它们来提高安全性和决定下一步的行为。
它还告诉浏览器表单数据应该发往<form>的action属性指定的URL:/admin/,而且应该使用method属性指定的HTTP post方法发送数据。
当点击<input type="submit" value="Log in">元素时,数据将发送给/admin/

处理表单时候只会用到POST和GET方法。
GET方法将用户数据以键=值的形式,以‘&’符号组合在一起成为一个整体字符串,最后添加前缀“?”,将字符串拼接到url内,生成一个类似https://docs.djangoproject.com/search/?q=forms&release=1的URL

以最简单的GET-POST请求为例:
views.py

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


# 表单
def search_form(request):
    return render(request, 'search_form.html')


# 接收POST请求数据
def search_post(request):
    ctx = {}
    print(request, request.POST['q'])
    if request.POST:
        ctx['rlt'] = request.POST['q']
    return render(request, "search_post.html", ctx)


# 接收GET请求数据
def search(request):
    request.encoding = 'utf-8'
    print(request)
    if 'q' in request.GET and request.GET['q']:
        message = '你搜索的内容为: ' + request.GET['q']
    else:
        message = '你提交了空表单'
    return HttpResponse(message)

search_from.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>search_form</title>
</head>
<body>
    <form action="/search/" method="get">
        <input type="text" name="q">
        <input type="submit" value="搜索">
    </form>
</body>
</html>

search_post.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>search_post</title>
</head>
<body>
    <form action="/search-post/" method="post">
        {% csrf_token %}
        <input type="text" name="q">
        <input type="submit" value="搜索">
    </form>

    <p>{{ rlt }}</p>
</body>
</html>

urls.py

from django.urls import path
from . import views
urlpatterns = [
    path('search-form/', views.search_form),
    path('search/', views.search),
    path('search-post/', views.search_post),
]

在search_form.html 中action=“/search/” method=“get”,指定用GET方法将数据发送到/search
因此在http://127.0.0.1:8000/search-form/输入abc回车,则会跳转到http://127.0.0.1:8000/search/?q=abc并回显

你搜索的内容为:abc

在search_post.html 中action=“/search-post/” method=“post”,指定用POST方法将数据发送到/search-post
因此在http://127.0.0.1:8000/search-post/输入abc回车,则会在本页面回显信息

Django的表单中的HTML字段有以下几种:

<form action="/your-name/" method="post"> 这一行定义了我们的发送目的地/your-name/和HTTP方法POST
<input type="submit" value="搜索">
<input type="text">: 这个字段用于输入单行文本信息,例如用户名、密码等。
<input type="password">: 这个字段用于输入密码信息,会隐藏所输入的文本。
<input type="email">: 这个字段用于输入电子邮件地址。
<input type="url">: 这个字段用于输入网址。
<input type="checkbox">: 这个字段用于选择一个或多个选项,例如勾选协议同意框等。
<input type="radio">: 这个字段用于从多个选项中选择一个选项。
<input type="file">: 这个字段用于上传文件。
<input type="hidden">: 这个字段用于隐藏数据,例如存储一些需要在表单提交时携带的数据,但用户不需要看到这些数据。

此外,还有一些HTML字段是Django自定义的,例如:文章来源地址https://www.toymoban.com/news/detail-448613.html

CharField: 这个字段用于输入单行文本信息。
EmailField: 这个字段用于输入电子邮件地址。
IntegerField: 这个字段用于输入整数。
FloatField: 这个字段用于输入浮点数。
BooleanField: 这个字段用于选择是或否。
DateField: 这个字段用于输入日期。
DateTimeField: 这个字段用于输入日期和时间。
这些Django自定义的HTML字段可以在Django表单中使用。

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

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

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

相关文章

  • 介绍下Django中的表单(forms)模块中的类forms.CharField

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

    2024年02月14日
    浏览(41)
  • Element-UI可以动态生成的form表单

    此form表单每一项绑定的值组成一个对象,对象叠加组成了一个对象数组,循环对象数组生成form的表单项。当点击新增一项时,其实就是给form表单对象数组添加一个对象,删除则反之。值得注意的是,由于动态表单得到的是一个对象数组,但我们需要的是表单的值组成的对象

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

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

    2024年02月07日
    浏览(41)
  • Vue表单基本操作-收集表单数据

    使用vue中的v-model收集表单里面的数据,不同的表单元素配合v-model会有不同的写法和技巧 本次的表单元素包括:文本框,单选,多选,下拉框,文本域 首先编写表单元素,包括:文本框,单选,多选,下拉框,文本域 这里有一个细节(小技巧):表单编写input输入框的时候,通

    2023年04月23日
    浏览(63)
  • vue3 antd项目实战——Form表单的重置【使用resetFields()重置form表单数据、清空输入框】

    文章内容 文章链接 Form表单 提交和校验 https://blog.csdn.net/XSL_HR/article/details/128495087?spm=1001.2014.3001.5501 Form表单的 嵌套使用 https://blog.csdn.net/XSL_HR/article/details/128488913?spm=1001.2014.3001.5501 Form表单的 动态校验规则 https://blog.csdn.net/XSL_HR/article/details/128437275?spm=1001.2014.3001.5501 往期文章

    2024年02月02日
    浏览(62)
  • Microsoft Forms使用技巧—发送和收集答案

    今天我们来介绍一下如何在Forms中发送和收集答案。在Forms中进行数据收集或测试开始之前点击“收集答复”会出现下面的界面。有三种收集形式包括“任何人均可回复”、“只有我组织中的人员可回复”和“指定我组织中的人员可回复”。 如果是指定某个组对Forms表单或测试

    2024年02月15日
    浏览(44)
  • iview form 动态表单

    最开始用得网上得 发现前面得红色必选项跟着变换,但是表单验证输入了还是显示不能为空 然后我用了v-if    结果,红色星号在,表单验证确是可以的 最终解决方法: 用 v-show !!!!!!!! div v-show=\\\"baseForm.receipt == \\\'11\\\'\\\" div v-show=\\\"baseForm.receipt== \\\'12\\\" 把需要输入的用v-show来验证就好了

    2024年02月08日
    浏览(40)
  • form 校验多个表单

    有的时候,表单需要拆开多个,这时候就需要校验多个表单  

    2024年02月16日
    浏览(47)
  • form 表单恢复初始数据

    在前端,我们可以使用两种方法来保存表单数据:LocalStorage 和 Cookie。 使用 LocalStorage 保存数据:LocalStorage 是浏览器提供的一种本地存储机制,它允许将数据以键值对的形式存储在用户的浏览器中。要保存表单数据到 LocalStorage 中,可以使用 JavaScript 的 localStorage.setItem(key, v

    2024年02月13日
    浏览(36)
  • Form Generator 扩展子表单组件之表单校验(超详细)

    form-generator的作者是这样介绍的:Element UI表单设计及代码生成器,可将生成的代码直接运行在基于Element的vue项目中;也可导出JSON表单,使用配套的解析器将JSON解析成真实的表单。 但目前它提供的组件并不能满足我们在项目中的使用。所以该专栏主要讲解如何在该项目中从零

    2024年02月16日
    浏览(71)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包