我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python Django框架中表单怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python Django框架中表单怎么使用

本篇内容介绍了“Python Django框架中表单怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    Django保证表单的正确显示需要添加CSRF(防止网站跨站请求伪造而默认开启的一种保护方式),在<form></form>之间添加

    {% csrf_token %}

    Python Django框架中表单怎么使用

    在项目settings.py中 * &lsquo;django.middleware.csrf.CsrfViewMiddleware&rsquo;, * 引入,如果没有此中间件,手动添加。

    文件上传

    首次打开路径是GET请求,如果点击上传是POST请求,如果文件内容不为空,则上传文件,上传路径为主项目下的 media/uploads/,如果路径不存在则新建。open(os.path.join(path + myFile.name), &lsquo;wb+&rsquo;) 二进制读写打开对应文件,chunks()将文件分块读写。

    def upload_file(request):    if request.method == "GET":        return render(request, 'app1/upload.html')    if request.method == "POST":        myFile = request.FILES.get("myfile", None)        if myFile:            path = 'media/uploads/'            if not os.path.exists(path):                os.makedirs(path)            dest = open(os.path.join(path + myFile.name), 'wb+')            for chunk in myFile.chunks():                dest.write(chunk)            dest.close()            return HttpResponse("上传完成")        else:            return HttpResponse("没有上传文件")

    添加路由。

    Python Django框架中表单怎么使用

    Python Django框架中表单怎么使用

    文件已经上传成功。

    Form表单

    如下新建一个form.py写入如下代码

    from django import formsclass UserInfoForm(forms.Form):    '''用户状态'''    STATUS = ((None, '请选择'), (0, '正常'), (1, '无效'),)    username = forms.CharField(label="用户名称", min_length=6, widget=forms.widgets.TextInput(        attrs={'class': 'form-control', 'placeholder': '请输入用户名称'}    ))    password = forms.CharField(label="密码", min_length=6, max_length=10, widget=forms.widgets.PasswordInput(        attrs={'class': 'password'}, render_value=True    ))    age = forms.IntegerField(label="年龄", initial=1)    mobile = forms.IntegerField(label="手机号码")    status = forms.ChoiceField(label="用户状态", choices=STATUS)    createdate = forms.DateTimeField(label="创建时间", required=False)

    表单字段

    表单字段说明
    CharField文本输入
    InterField/FloatField/DecimalField数值输入
    ChoiceField选择输入框 choices指定下拉列表
    FileField文件
    BooleanField复选框
    DateField/DateTimeField/TimeField时间输入框,可以设置输入格式 input_format=[“%Y-%m-%d %H:%M”]
    EmailField邮件输入框
    URLField路劲输入框
    ModelChoiceField从数据库获取下拉列表

    字段参数

    字段说明
    labellabel标签
    label_suffixLabel标签统一后缀信息
    initial初始值
    help_text字段描述信息
    error_messages字段描述信息
    validators验证规则
    required是否必须
    disabled字段是否可编辑
    widget指定HTML样式

    widget参数

    参数说明
    PasswordInput密码输入框
    HiddenInput隐藏元素
    Textarea文本域
    CheckboxInput复选框
    FileInput文件输入框
    RadioSelect单选按钮
    DateTimeInput时间输入框
    Select下拉列表
    SelectMuitiple多选框

    配置视图和路径显示对应表单

    app1下的views.py

    def userinfo_form(request):    if request.method == "GET":        myForm = UserInfoForm()        return render(request, 'app1/userinfo.html', {'form_obj': myForm})

    userinfo.html

    <html>  <head></head>  <body>    <form action="" method="POST">      {% csrf_token %} {{ form_obj.as_p }}      <input type="submit" value="提交" />    </form>  </body></html>

    Python Django框架中表单怎么使用

    • as_p 为表单提供<p>标签

    • as_table 为表单提供<table>标签

    • as_ui 为表单提供<ui>标签

    以上用了as_p,故源代码显示p标签。

    Python Django框架中表单怎么使用

    表单的验证

    • is_valid() 验证表单数据是否合法

    • cleaned_data 获取表单通过验证的数据

    • errors 表单验证的错误信息

    在form中添加如下代码

    class UserInfoForm__Msg(forms.Form):    '''用户状态'''    STATUS = ((None, '请选择'), (0, '正常'), (1, '无效'),)    username = forms.CharField(label="用户名称", min_length=6, widget=forms.widgets.TextInput(        attrs={'class': 'form-control', 'placeholder': '请输入用户名称'}    ), error_messages={        'required': '用户姓名不能为空', 'min_length': '长度不能少于6位', 'invalid': '不能含有特殊字符'    })    password = forms.CharField(label="密码", min_length=6, max_length=10, widget=forms.widgets.PasswordInput(        attrs={'class': 'password'}, render_value=True    ), error_messages={        'required': '密码不能为空', 'min_length': '密码不能少于6位', 'max_length': '密码不能多余10位',    })    age = forms.IntegerField(label="年龄", initial=1, validators=[age_validate], error_messages={        'required': '年龄不能为空',    })    mobile = forms.IntegerField(label="手机号码", validators=[mobile_validate], error_messages={        'required': '手机号码不能为空',    })    status = forms.ChoiceField(label="用户状态", choices=STATUS, error_messages={        'required': '用户状态不能为空',    })    createdate = forms.DateTimeField(label="创建时间", required=False)
    • required 为空的时候的错误信息

    • invalid 格式验证错误的信息

    • min_length和max_length 长度不在设定的范围的错误信息

    添加视图

    def userinfo_form_msg(request):    if request.method == "GET":        myForm = UserInfoForm__Msg()        return render(request, 'app1/userinfoform.html', {'form_obj': myForm})    else:        f = UserInfoForm__Msg(request.POST)        if f.is_valid():            print(f.cleaned_data['username'])        else:            errors = f.errors            print(errors)            return render(request, 'app1/userinfoform.html', {'form_obj': f, 'errors': errors})        return render(request, 'app1/userinfoform.html', {'form_obj': f})

    模板文件

    <form action="" method="POST" novalidate>  {% csrf_token %}  <p>    {{ form_obj.username.label }}:{{ form_obj.username }} {{ errors.username.0 }}  </p>  <p>{{ form_obj.password}}{{ errors.password.0 }}</p>  <p>{{ form_obj.status.label }}:{{ form_obj.status }} {{ errors.status.0 }}</p>  <p>{{ form_obj.age.label }}:{{ form_obj.age }} {{ errors.age.0 }}</p>  <p>{{ form_obj.mobile.label }}:{{ form_obj.mobile }} {{ errors.mobile.0 }}</p>  错误信息汇总: {{ errors }}  <input type="submit" value="提交" /></form>

    Python Django框架中表单怎么使用

    这里还添加了表单的自我格式验证,获取表单的数据

    • f.clean() 获取全部数据

    • f.clean_date[] 获取对应值的数据

    • f.data 获取全部数据

    表单模型文件上传例子

    模板文件:upload_form.html

    <form enctype="multipart/form-data" action="" method="post">  {% csrf_token %} {{ form_obj.as_p }}  <br />  <input type="submit" value="文件上传" />  <img class="lazy" data-src="media/uploads/{{ user.heading }}"</form>

    模型文件

    在models.py中添加模型,这里没有主键默认会生成id的主键

    class ImgFile(models.Model):    name = models.CharField(verbose_name='用户名称', max_length=300, default="")    heading = models.FileField(verbose_name='文件名', upload_to='media/uploads/')    def __str__(self):        return self.name    class Meta:        verbose_name = ' 用户头像信息'        db_table = 'user_img'

    表单模型 form.py

    class ImgFileForm(forms.Form):    name = forms.CharField()    heading = forms.FileField()

    视图模型

    如果上传了文件,将文件保存在对应的目录下,并返回文件的信息。

    def ingfileform(request):    if request.method == "GET":        f = ImgFileForm()        return render(request, 'app1/upload_form.html', {'form_obj': f})    else:        f = ImgFileForm(request.POST, request.FILES)        if f.is_valid():            name = f.cleaned_data['name']            heading = f.cleaned_data['heading']            path = 'media/uploads/'            if not os.path.exists(path):                os.makedirs(path)            dest = open(os.path.join(path + heading.name), 'wb+')            for chunk in heading.chunks():                dest.write(chunk)            dest.close()            userimg = ImgFile()            userimg.name = name            userimg.heading = heading            userimg.save()            print('上传成功')            return render(request, 'app1/upload_form.html', {'form_obj': f, 'user': userimg})        else:            print(f.errors)

    路由

    re_path 配置了可以直接在浏览器访问对应的文件,

    from django.urls import path, include, re_pathfrom django.views.static import servefrom mywed import settings    path('app1/userimg/', views.ingfileform),    re_path('media/uploads/(?P<path>.*)', serve,            {"document_root": settings.MEDIA_ROOT}),

    settings.py

    这里路径在项目文件中设置便于统一,在实际的应用中也应该多在公共文件中设置

    MEDIA_URL = "media/uploads/"MEDIA_ROOT = os.path.join(MEDIA_URL, "")

    Python Django框架中表单怎么使用

    db中也登陆了对应的信息

    Python Django框架中表单怎么使用

    模型表单

    Django提供了ModelForm可以直接和模型关联,省略了Form表单中定义的操作。

    AJAX

    模板文件,为了能够正常的访问,必须添加csrfmiddlewaretoken或者在视图函数中注释@csrf_exempt,建议使用第一种方式

    用户名:<input type="text" id="username"></input>密码:<input type="password" id="password"></input>{% csrf_token %}<button id="submit">提交</button><script class="lazy" data-src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script><script>$("#submit").click(function(){    var csrf = $('input[name="csrfmiddlewaretoken"]').val();    $.ajax({      url: '/app1/ajax_login_data',      type: "post",      data: {        'username': $("#username").val(),        'password': $("#password").val(),        'csrfmiddlewaretoken': csrf      },      success: function(data){        console.log(data)      },      error: function(jqXHR, textStatus, err){        console.log(arguments);      }    });  }); </script>

    视图文件

    from django.views.decorators.csrf import csrf_exemptdef ajax_login(request):    return render(request, 'app1/ajax.html')# @csrf_exemptdef ajax_login_data(request):    if request.method == "GET":        HttpResponse("内部自己的url")    username = request.POST.get('username')    password = request.POST.get('password')    print(username)    if username == 'admin' and password == '123456':        return JsonResponse({            'code': 1,            'msg': "登陆成功"        })    else:        print("222")        return JsonResponse({            'code': 0,            'msg': "登陆失败"

    Python Django框架中表单怎么使用

    这里使用的是网上的jquery地址,也可在settings.py匹配如下,在网站根目录中创建static目录,放入jquery文件。

    <script class="lazy" data-src=“/statics/jquery.min.js”></script>

    STATIC_URL = '/statics/'STATICFILES_DIRS = [    os.path.join(BASE_DIR, "statics"),]

    “Python Django框架中表单怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    Python Django框架中表单怎么使用

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    Python Django框架中表单怎么使用

    本篇内容介绍了“Python Django框架中表单怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Django保证表单的正确显示需要
    2023-07-02

    Python中怎么使用Django框架开发

    今天就跟大家聊聊有关Python中怎么使用Django框架开发,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。建立Python Django开发框架,实现表单的有效性检验。可以方便的从
    2023-06-17

    Python的Django框架中forms表单类的使用方法详解

    Form表单的功能自动生成HTML表单元素检查表单数据的合法性如果验证错误,重新显示表单(数据不会重置)数据类型转换(字符类型的数据转换成相应的Python类型)Form相关的对象包括Widget:用来渲染成HTML元素的工具,如:form
    2022-06-04

    python-django框架中使用Fa

    一、安装FastDFS1-1:执行docker命令安装# 安装trackerdocker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs youko
    2023-01-31

    python中如何使用Django框架

    这篇文章将为大家详细讲解有关python中如何使用Django框架,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。第一步:项目的创建与运行第一次使用 Django ,那么你必须要照顾一些初始设
    2023-06-20

    python-django框架中使用七牛

    1:注册七牛云账号       https://www.qiniu.com/  js文件 链接:https://pan.baidu.com/s/1BW1svHqEsXrrTNtRobKkpg  提取码:ixta  2:进行实名认证3:在项目
    2023-01-31

    Django框架中模型怎么使用

    这篇文章主要介绍“Django框架中模型怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Django框架中模型怎么使用”文章能帮助大家解决问题。Django 对各种数据库提供了很好的支持,包括
    2023-07-02

    Python django中如何使用restful框架

    restful框架的使用 在使用django进行前后台分离开发时通常会搭配django-rest-framework框架创建RESTful风格的接口API。框架介绍及版本要求可参考官方地址:https://www.django-rest-f
    2022-06-02

    python Django框架实现自定义表单提交

    除了使用Django内置表单,有时往往我们需要自定义表单。对于自定义表单Post方式提交往往会带来由CSRF(跨站请求伪造)产生的错误"CSRF verification failed. Request aborted." 本篇文章主要针对
    2022-06-04

    怎么在Python Web框架Django中使用序列化器

    这篇文章主要讲解了“怎么在Python Web框架Django中使用序列化器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Python Web框架Django中使用序列化器”吧!序列化
    2023-06-15

    Python中什么是Django框架

    这篇文章主要介绍“Python中什么是Django框架”,在日常操作中,相信很多人在Python中什么是Django框架问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中什么是Django框架”的疑
    2023-06-01

    Django框架之路由怎么使用

    这篇文章主要介绍“Django框架之路由怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Django框架之路由怎么使用”文章能帮助大家解决问题。简介路由简单的来说就是根据用户请求的 URL 链
    2023-07-02

    Python Web框架Django怎么使用jwt获取用户信息

    这篇文章主要介绍“Python Web框架Django怎么使用jwt获取用户信息”,在日常操作中,相信很多人在Python Web框架Django怎么使用jwt获取用户信息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对
    2023-06-01

    django怎么使用ajax提交表单

    在Django中使用Ajax提交表单,你需要进行以下步骤:1. 在你的HTML文件中,使用JavaScript编写一个函数来处理表单的提交事件。在该函数中,使用`$.ajax()`方法发送异步请求。```javascriptfunction
    2023-09-26

    Python中的Scrapy框架怎么使用

    这篇文章主要讲解了“Python中的Scrapy框架怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中的Scrapy框架怎么使用”吧!安装Scrapy首先,您需要在您的计算
    2023-07-05

    Python的Web框架Django怎么安装

    本篇内容主要讲解“Python的Web框架Django怎么安装”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python的Web框架Django怎么安装”吧!简介Python下有许多款不同的 W
    2023-07-02

    Python中的flask框架怎么使用

    使用Flask框架来构建Web应用程序需要以下几个步骤:1. 安装Flask框架:可以在命令行中使用pip命令进行安装,例如`pip install flask`。2. 创建一个Flask应用程序对象:在Python代码中导入Flask类,
    2023-08-12

    在Python的Flask中使用WTForms表单框架的基础教程

    下载和安装 安装 WTForms 最简单的方式是使用 easy_install 和 pip:easy_install WTForms # or pip install WTForms你可以从 PyPI 手动 下载 WTForms 然后运行
    2022-06-04

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录