0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

教你如何设计Django的样式以及如何添加class

马哥Linux运维 来源:Python运维技术 作者:Python运维技术 2021-06-04 16:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

每个使用Django的人都知道Django表单的优点。但是,当你第一次使用它时,一般会出现一个问题:我该如何设计它的样式?如何添加class?

是的,其实有一种方法(实际上很简单),就是必须使用widgets(小部件)。

什么是widgets:widgets是Django对HTML输入元素的表示。widgets处理HTML的呈现,并从与widgets相对应的GET / POST字典中提取数据。

换句话说,widgets只是定义如何将内容呈现为HTML的一种方法。因此,例如,CharField具有默认的TextInput小部件,该小部件呈现为《input type =“ text”》。

但是小部件是可自定义的,因此还可以设置诸如文本区域的大小之类的内容,或者该字段是否将成为必填字段等等。

因此,让我们尝试构建一个示例来展示实际使用的小部件。

假设我们有一个名为UserInfoForm的表单来获取用户名以及他的电子邮件。

from django import formsclass UserInfoForm(forms.Form): name = forms.CharField() email = forms.EmailField()

HTML看起来像这样:

《div class=“container”》《h1》Form《/h1》《form action=“{% url ‘index’ %}” method=“post”》 {% csrf_token %}《div class=“form-group”》 {{ form }}《/div》《div class=“form-group”》《input class=“btn btn-success” type=“submit” value=“Submit”》《/div》《/form》《/div》

目前,此表单使用默认的窗口小部件,并且没有任何样式,因此基本上,它看起来像这样:

65119434-c482-11eb-9e57-12bb97331649.png

看着还可以,但是它仍然可以改进,我们可以向其中添加一个Bootstrap类。我们可以通过在attrs字典中声明一个类来做到这一点。

from django import formsfrom django.forms import TextInput, EmailInputclass UserInfoForm(forms.Form): name = forms.CharField(widget=forms.TextInput(attrs={‘placeholder’: ‘Name’, ‘style’: ‘width: 300px;’, ‘class’: ‘form-control’) email = forms.EmailField(widget=forms.EmailInput(attrs={‘placeholder’ :‘Email’, ‘style’: ‘width: 300px;’, ‘class’: ‘form-control’)

我们添加了一个Bootstrap类,然后看结果:

652d0bb0-c482-11eb-9e57-12bb97331649.png

但是通常当我们使用Django表单时,这些表单与某种模型相关,而现在这种表单却没有。为此,我们需要进行一些更改。我们现在将使用小部件类。窗口小部件类具有基本的属性attrs,就像上面的示例一样。我们还必须添加一个名为Meta的新类,并指定与该表单相关的模型的名称,我们要拥有的字段以及这些字段的小部件。

from django import formsfrom django.forms import ModelForm, TextInput, EmailInputfrom .models import Userclass UserInfoForm(ModelForm):class Meta: model = User fields = [‘name’, ‘email’] widgets = {‘name’: TextInput(attrs={‘class’: “form-control”,‘style’: ‘max-width: 300px;’,‘placeholder’: ‘Name’ }),‘email’: EmailInput(attrs={‘class’: “form-control”, ‘style’: ‘max-width: 300px;’,‘placeholder’: ‘Email’ }) }

那么这是怎么回事?我们之前使用的CharField和EmailField是内建字段类,但是如果要使用widgets类,则需要使用内建控件,在此示例中,这些控件是TextInput和EmailInput。最终它们将工作相同,但配置会略有不同。

该表单基本上与以前的表单相同,它没有改变其呈现方式或其他任何方式,但现在此表单已连接到User模型,该模型是用于存储用户信息的模型。 HTML看起来像这样:

《div class=“container”》《h1》Form《/h1》《form action=“{% url ‘index’ %}” method=“post”》 {% csrf_token %}《div class=“form-group”》 {{ form.name }}《/div》《div class=“form-group”》 {{ form.email }}《/div》《div class=“form-group”》《input class=“btn btn-primary” type=“submit” value=“Submit”》《/div》《/form》《/div》

最后结果:

6550c4b0-c482-11eb-9e57-12bb97331649.png

写在最后: 学习如何使用窗口小部件非常有用,因为现在你知道如何使这些表单看起来更好,并且添加Bootstrap类非常简单,这很方便。

文章转载:Python运维技术

(版权归原作者所有,侵删)

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HTML
    +关注

    关注

    0

    文章

    280

    浏览量

    49763
  • Django
    +关注

    关注

    0

    文章

    45

    浏览量

    10927

原文标题:教你如何为Django表单设置样式?

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    光罩传输Aligner需满足Class1洁净度及哪些定位要求?

    光罩(光掩模板)作为半导体光刻工艺的核心部件,其表面精度和洁净度直接决定芯片的良率,因此光罩传输环节对晶圆前端Aligner的要求极为严苛。除了必须满足Class1(ISO Class3)洁净度
    的头像 发表于 02-26 09:58 311次阅读

    探索SSM2517:高性能PDM数字输入Class - D音频放大器

    Devices的SSM2517 PDM数字输入Class - D音频放大器,为我们提供了一个出色的解决方案。今天,我们就来深入了解一下这款放大器的特点、性能以及应用注意事项。 文件下载
    的头像 发表于 01-19 10:05 423次阅读

    探索SSM2519:数字输入2W Class - D音频功率放大器的卓越性能与应用

    输入2W Class - D音频功率放大器,以其独特的特性和出色的性能,为音频设计带来了新的解决方案。今天,我们就来详细探讨一下这款放大器的特点、工作原理以及应用场景。 文件下载
    的头像 发表于 01-16 16:15 296次阅读

    MAX98358:高性能PDM输入Class D音频功率放大器的卓越之选

    的MAX98358 PDM输入Class D音频功率放大器,凭借其独特的设计和出色的性能,成为了众多应用的理想选择。本文将深入剖析MAX98358的特性、工作原理以及应用要点,为电子工程师在音频设计中提
    的头像 发表于 01-16 16:10 324次阅读

    MAX98395数字输入Class DG放大器:音频设计的新选择

    MAX98395数字输入Class DG放大器:音频设计的新选择 在音频设备的设计领域,一款性能卓越的放大器往往能为产品带来质的提升。今天,我们就来深入探讨一下Maxim Integrated推出
    的头像 发表于 01-16 14:45 327次阅读

    剖析MAX98363:低成本高效能SoundWire Class D放大器的魅力

    ,作为一款小巧且经济高效的SoundWire Class D放大器,无疑为音频设计领域带来了新的选择。今天,我们就来深入剖析这款放大器的特性、应用以及设计要点。 文件下载: MAX98363.pdf
    的头像 发表于 01-16 14:25 339次阅读

    探索MAX98365:高性能数字Class - D放大器的卓越之选

    。今天,我们就来深入了解一款极具竞争力的数字Class - D放大器——MAX98365,探究它的特性、优势以及应用场景。 文件下载: MAX98365.pdf 一、产品概述 MAX98365是一款易于
    的头像 发表于 01-16 14:25 357次阅读

    探索MAX98360:小巧高效的数字Class - D放大器

    探索MAX98360:小巧高效的数字Class - D放大器 在电子设备的音频处理领域,放大器的性能、成本和尺寸往往是工程师们关注的重点。今天,我们就来深入探讨一下Analog Devices推出
    的头像 发表于 01-16 14:10 238次阅读

    深入解析Bourns 1440系列IEC Class II DC浪涌保护器

    深入解析Bourns 1440系列IEC Class II DC浪涌保护器 在电子设备的设计与应用中,浪涌保护至关重要,它能有效保护设备免受雷击、瞬态和电源浪涌的损害。今天,我们就来详细探讨
    的头像 发表于 12-23 11:15 549次阅读

    探秘Bourns 1270系列IEC Class I AC浪涌保护器

    探秘Bourns 1270系列IEC Class I AC浪涌保护器 在电子设备的世界里,浪涌就像隐藏的杀手,随时可能对设备造成不可逆的损害。为了有效抵御浪涌的侵袭,Bourns推出了1270系列
    的头像 发表于 12-23 11:15 408次阅读

    探秘Bourns 1270系列IEC Class I AC浪涌保护器:性能、应用与选型指南

    保护器(SPD)至关重要。今天,我们就来详细探讨Bourns 1270系列IEC Class I AC浪涌保护器,了解它的特点、性能参数以及应用场景。 文件下载: Bourns 1270系列浪涌保护器
    的头像 发表于 12-23 11:10 396次阅读

    1280系列IEC Class II交流浪涌保护器:特性与应用解析

    1280系列IEC Class II交流浪涌保护器:特性与应用解析 在电子设备的运行中,浪涌是一个不可忽视的威胁,它可能来自于雷击、电网切换等多种因素,会对设备造成严重的损害。为了有效保护电力系统
    的头像 发表于 12-23 11:00 415次阅读

    探秘Bourns FB系列Class T保险丝座:特性、参数与应用指南

    探秘Bourns FB系列Class T保险丝座:特性、参数与应用指南 在电子工程领域,保险丝座作为保障电路安全的关键组件,其性能与质量直接影响着整个系统的稳定性。今天,我们就来深入了解一下
    的头像 发表于 12-23 10:45 537次阅读

    Bourns CFB系列Riedon Class T熔断器座:设计与应用解析

    Bourns CFB系列Riedon Class T熔断器座:设计与应用解析 在电子工程领域,熔断器座作为保障电路安全的关键部件,其性能和适用性至关重要。今天,我们就来详细探讨Bourns推出
    的头像 发表于 12-23 10:40 351次阅读

    关于NanoEdge AI用于n-Class的问题求解

    我想请教一下关于NanoEdge AI用于n-Class的问题。我使用NanoEdge AI的n-Class模式,训练好模型,设计了3个分类,使用PC端的模拟工具测试过,模型可以正常对数据进行分类
    发表于 08-11 06:44