注册页面-使用form模块搭建
基于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模块搭建的更多相关文章
- php登录注册页面及加载
php注册界面 <h1>注册页面</h1> <form acti ...
- php做登录注册页面及加载
//SQL注入攻击 //1.过滤用户的输入 //2.使用预处理语句 //3.写代码的时候尽量避免 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...
- javaweb 登陆注册页面
视图的数据修改,表中也修改引用工具类用<%@ page import=""%> <%@ page import="java.util.Date" ...
- 注册页面html版本
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 扩展auth_user字段、BBS需求分析、创建BBS数据库、注册页面搭建与用户头像展示及Ajax提交数据
昨日内容回顾 csrf跨站请求 1. SQL注入 2. xss攻击 3. csrf跨站请求 4. 密码加密(加盐) '''django中默认有一个中间件来验证csrf''' # 只针对post请求才验 ...
- 07-SSH综合案例:前台用户模块:结构创建及注册页面跳转
现在就不要直接访问一个JSP,要通过一个Action映射过去.我现在点击要去一个注册的页面 这还不是一个真正的注册,只是一个页面的跳转. 1.5.2 用户模块 注册功能: 在index.jsp页面中点 ...
- 注册页面的简单搭建(H5)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Django内置form表单和ajax制作注册页面
settings.py import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_D ...
- 使用Html和ashx文件实现其简单的注册页面
记得上一次博客中实现的是其登录页面,其实学会了登录页面,注册页面自然就知道怎么写啦,都是一个意思的,但是今天不知道怎么个情况,写一个注册页面程序 中 一直在出错,大的问题小的问题一直出错,似乎是不在状 ...
随机推荐
- shell 过滤器(管道)
将几个命令通过管道符组合在一起就是一个管道,通常,通过这种方式使用的命令就被称为过滤器. 过滤器会获得输入,通过某种方式修改其内容,然后将其输出. 常用的被用作过滤器使用的命令为: 1.awk---用 ...
- 力扣算法题—148sort-list
Sort a linked list in O(n log n) time using constant space complexity. Example 1: Input: 4->2-> ...
- ajaxfileupload上传文件出现SyntaxError:unexpected token <错误
function ajaxFileUpload() { $.ajaxFileUpload ( { url: uri, secureuri: false, fileElementId: 'upFile' ...
- GCD 与XOR
题目:UVA12716 题意: 问 gcd(i,j) = i ^ j 的对数(j <=i <= N ) N的范围为30000000,有10000组样例 分析: 有几个结论:(1)若 a ...
- JS提示信息来检测相应id的标签
2015-07~2015-08 (其中$为document.getElementById()) 使用span提示信息来检测相应id的标签,没有返回值 infoTips("LRYH" ...
- Activity向Fragment传值
发送数据 //Activity传值,通过Bundle Bundle bundle = new Bundle(); bundle.putString("MainActivity", ...
- WPF gridcontrol 后台代码清除过滤筛选条件
WPF 后台清除gridcontrol过滤筛选条件: ColumnName:列名 user_GridControl:gridcontrol控件名 user_GridControl.ClearColum ...
- 2018-10-19-C#-GUID-ToString-
title author date CreateTime categories C# GUID ToString lindexi 2018-10-19 9:4:44 +0800 2018-4-1 10 ...
- python os模块用法
import os #os主要做路径管理import glob #glob主要做搜索查询匹配import sys inputpath = r"C:\Users\Administrato ...
- redis实现分布式锁需要考虑的因素以及可重入锁实现
死锁 错误例子 解决方式 防止死锁 通过设置超时时间 不要使用setnx key expire 20 不能保证原子性 如果setnx程序就挂了 没有执行expire就死锁了 reidis2 ...