基于Django的form模块,快速的搭建注册页面,每个限制条件,都放在form模块里面,不单独对每一项编写标签,使用模版的 for 循环来渲染。

  • 首先设置form模块

在blogs模块下创建一个blogs_form.py文件

注意一点,需要引用django模块下的forms模块,还有widgets模块,widget是设置input的类型,比如TextInput文本框,PasswordInput密码框,EmailInput邮箱框等等,这些好处就不用对其做判断,是否符合邮箱的匹配条件,forms模块就帮忙做了。

attrs:添加input的属性和属性值,key-value 形式,我想在class添加form-control(Bootstrap的样式),使用 attrs={"class","form-control"}

 from django import forms
from django.forms import widgets class UserForm(forms.Form):
user = forms.CharField(max_length=32,
label="用户名",
widget=widgets.TextInput(attrs={"class": "form-control"}))
pwd = forms.CharField(max_length=32,
label="密码",
widget=widgets.PasswordInput(attrs={"class": "form-control"}))
re_pwd = forms.CharField(max_length=32,
label="确认密码",
widget=widgets.PasswordInput(attrs={"class": "form-control"}))
email = forms.EmailField(max_length=32,
label="邮箱",
widget=widgets.EmailInput(attrs={"class": "form-control"}))
  • view视图添加注册

创建forms对象,直接返回。

记得引入刚刚写的UserForm到view中。

from .blog_form import UserForm

def register(request):
form = UserForm()
return render(request, "register.html", locals())

  

  • urls路由中添加路径

添加路径,将url路径和view中的register函数,关联起来。

path("register/", views.register)

  

  • 重头戏,写register.html

首先,使用Bootstrap将布局搭建好,把<form>标签中的位置空出来

记得在form标签中,写 csrf_token 解决跨站问题

循环 UserForm对象, 每次拿到一个filed对象

filed.name:对象的label名

filed.label:对象的label

filed: input标签

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css">
<script src="/static/js/jquery-3.4.1.js" type="text/javascript"></script>
<style type="text/css">
</style>
</head>
<body> <div class="container">
<div class="row">
<div class="col-md-6 col-lg-offset-3">
<h3>注册页面</h3>
<form>
{% csrf_token %} {% for filed in form %}
<div class="form-group">
<label for="id_{{ filed.name }}">{{ filed.label }}</label>
{{ filed }}
</div>
{% endfor %}
</form>
</div>
</div>
</div>
<script type="text/javascript">
</script>
</body>
</html>

  

注册页面-使用form模块搭建的更多相关文章

  1. php登录注册页面及加载

                           php注册界面                               <h1>注册页面</h1> <form acti ...

  2. php做登录注册页面及加载

    //SQL注入攻击 //1.过滤用户的输入 //2.使用预处理语句 //3.写代码的时候尽量避免 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...

  3. javaweb 登陆注册页面

    视图的数据修改,表中也修改引用工具类用<%@ page import=""%> <%@ page import="java.util.Date" ...

  4. 注册页面html版本

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. 扩展auth_user字段、BBS需求分析、创建BBS数据库、注册页面搭建与用户头像展示及Ajax提交数据

    昨日内容回顾 csrf跨站请求 1. SQL注入 2. xss攻击 3. csrf跨站请求 4. 密码加密(加盐) '''django中默认有一个中间件来验证csrf''' # 只针对post请求才验 ...

  6. 07-SSH综合案例:前台用户模块:结构创建及注册页面跳转

    现在就不要直接访问一个JSP,要通过一个Action映射过去.我现在点击要去一个注册的页面 这还不是一个真正的注册,只是一个页面的跳转. 1.5.2 用户模块 注册功能: 在index.jsp页面中点 ...

  7. 注册页面的简单搭建(H5)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. Django内置form表单和ajax制作注册页面

    settings.py import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_D ...

  9. 使用Html和ashx文件实现其简单的注册页面

    记得上一次博客中实现的是其登录页面,其实学会了登录页面,注册页面自然就知道怎么写啦,都是一个意思的,但是今天不知道怎么个情况,写一个注册页面程序 中 一直在出错,大的问题小的问题一直出错,似乎是不在状 ...

随机推荐

  1. python学习笔记:操作数据库

    1.下载安装模块 第一种:cmd下:执行命令下载安装:pip3 install pymysql 第二种:IDE下pycharm python环境路径下添加模块 2.连接数据库 import pymys ...

  2. 力扣算法题—148sort-list

    Sort a linked list in O(n log n) time using constant space complexity. Example 1: Input: 4->2-> ...

  3. POI教程

    很多时候,一个软件应用程序需要生成Microsoft Excel文件格式的报告.有时,一个应用程序甚至希望将Excel文件作为输入数据.例如,一个公司开发的应用程序将财务部门需要所有输出生成自己的Ex ...

  4. 20140903 dynamic_cast和static的区别 链表的冒泡排序和插入排序

    1.四个类型转换 http://www.cnblogs.com/chio/archive/2007/07/18/822389.html static_cast和dynamic_cast的区别 dyna ...

  5. linux下vnstat查看服务器带宽流量统计

      因为很多vps或者服务器都是限流量的,但是又很多服务商并没有提供详细的流量表,比如每天的流量表,所以肯定有人很想知道自己服务器到底跑了多少流量. vnstat就是一个很好用的服务器流量统计命令.我 ...

  6. pytest框架结构运行规则及命名方式

    Pytest框架结构 Import pytest 类似的setup,teardown同样更灵活,还有个session() 模块级 (setup_module/teardown_module) 不在类中 ...

  7. SiteMesh 2.X 的使用(网页结构模板)

    SiteMesh是基于Servlet的filter的,即过滤流.它是通过截取reponse,并进行装饰后再交付给客户. 其中涉及到两个名词: 装饰页面(decorator page)和 "被 ...

  8. 在linux上安装jdk

    一.环境 1.  VMware虚拟机 2.  Linux系统(centos7) 安装步骤: 1.  先安装VMtools 2.  查看是否有openjdk,若有先将系统内的openJDK删除(采用 r ...

  9. logging模板

    logging模板是一个专门用来做日至系统的 缺点是不能指定编码格式 import logging#引入logging板块 logging.basicConfig(#这个日志的基本配置 level=, ...

  10. Add cast to是什么意思

    eclipse中是强制类型转换的意思.