返回顶部
首页 > 资讯 > 后端开发 > Python >Python Django框架中表单怎么使用
  • 783
分享到

Python Django框架中表单怎么使用

2023-07-02 12:07:16 783人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

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

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

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

    --结束END--

    本文标题: Python Django框架中表单怎么使用

    本文链接: https://lsjlt.com/news/341880.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Python Django框架中表单怎么使用
      本篇内容介绍了“Python Django框架中表单怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Django保证表单的正...
      99+
      2023-07-02
    • Django框架中表单的用法
      HTML表单是网站交互性的经典方式。 本章将介绍如何用Django对用户提交的表单数据进行处理。 一、HTTP 请求 HTTP协议以"请求-回复"的方式工作。客户...
      99+
      2024-04-02
    • Python Django框架中表单的用法详解
      目录文件上传Form表单表单字段字段参数widget参数表单的验证表单模型文件上传例子模型表单AJAXDjango保证表单的正确显示需要添加CSRF(防止网站跨站请求伪造而默认开启的...
      99+
      2024-04-02
    • Python中怎么使用Django框架开发
      今天就跟大家聊聊有关Python中怎么使用Django框架开发,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。建立Python Django开发框架,实现表单的有效性检验。可以方便的从...
      99+
      2023-06-17
    • Python的Django框架中forms表单类的使用方法详解
      Form表单的功能 自动生成HTML表单元素 检查表单数据的合法性 如果验证错误,重新显示表单(数据不会重置) 数据类型转换(字符类型的数据转换成相应的Python类型) Form相关的...
      99+
      2022-06-04
      表单 使用方法 详解
    • python-django框架中使用Fa
      一、安装FastDFS 1-1:执行docker命令安装 # 安装tracker docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs ...
      99+
      2023-01-31
      框架 python django
    • python中如何使用Django框架
      这篇文章将为大家详细讲解有关python中如何使用Django框架,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。第一步:项目的创建与运行第一次使用 Django ,那么你必须要照顾一些初始设...
      99+
      2023-06-20
    • python-django框架中使用七牛
        1:注册七牛云账号        https://www.qiniu.com/   js文件 链接:https://pan.baidu.com/s/1BW1svHqEsXrrTNtRobKkpg  提取码:ixta   2:进行实名认...
      99+
      2023-01-31
      框架 python django
    • Django框架中模型怎么使用
      这篇文章主要介绍“Django框架中模型怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Django框架中模型怎么使用”文章能帮助大家解决问题。Django 对各种数据库提供了很好的支持,包括...
      99+
      2023-07-02
    • Python django中如何使用restful框架
      restful框架的使用 在使用django进行前后台分离开发时通常会搭配django-rest-framework框架创建RESTful风格的接口API。框架介绍及版本要求可参考官方地址:https://www.d...
      99+
      2022-06-02
      restful框架的使用 Python django
    • python Django框架实现自定义表单提交
      除了使用Django内置表单,有时往往我们需要自定义表单。对于自定义表单Post方式提交往往会带来由CSRF(跨站请求伪造)产生的错误"CSRF verification failed. Request a...
      99+
      2022-06-04
      自定义 表单 框架
    • 怎么在Python Web框架Django中使用序列化器
      这篇文章主要讲解了“怎么在Python Web框架Django中使用序列化器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Python Web框架Django中使用序列化器”吧!序列化...
      99+
      2023-06-15
    • Python中什么是Django框架
      这篇文章主要介绍“Python中什么是Django框架”,在日常操作中,相信很多人在Python中什么是Django框架问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中什么是Django框架”的疑...
      99+
      2023-06-01
    • Django框架之路由怎么使用
      这篇文章主要介绍“Django框架之路由怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Django框架之路由怎么使用”文章能帮助大家解决问题。简介路由简单的来说就是根据用户请求的 URL 链...
      99+
      2023-07-02
    • Python中tornado框架怎么使用
      Tornado 是一个Python的web框架和异步网络库,可以用于构建高性能的web应用程序。下面是一个简单的使用Tornado框...
      99+
      2024-03-01
      Python tornado
    • django 使用框架下auth.mod
      需要改动三个地方: 1.models.py   创建模型User,并继承原模型类AbstraUser(在此处我增加了一个新的字段手机号) from django.db import models # Create your model...
      99+
      2023-01-31
      框架 django mod
    • Python Web框架Django怎么使用jwt获取用户信息
      这篇文章主要介绍“Python Web框架Django怎么使用jwt获取用户信息”,在日常操作中,相信很多人在Python Web框架Django怎么使用jwt获取用户信息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对...
      99+
      2023-06-01
    • django怎么使用ajax提交表单
      在Django中使用Ajax提交表单,你需要进行以下步骤:1. 在你的HTML文件中,使用JavaScript编写一个函数来处理表单...
      99+
      2023-09-26
      django ajax
    • Python的Web框架Django怎么安装
      本篇内容主要讲解“Python的Web框架Django怎么安装”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python的Web框架Django怎么安装”吧!简介Python下有许多款不同的 W...
      99+
      2023-07-02
    • Python中的flask框架怎么使用
      使用Flask框架来构建Web应用程序需要以下几个步骤:1. 安装Flask框架:可以在命令行中使用pip命令进行安装,例如`pip...
      99+
      2023-08-12
      Python flask
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作