form.py
表单的作用是收集用户数据信息的集合,实现网页的交互
<form>
</form>
组成:
① action,用于设置用户提交的表单数据应由哪个路由接受和处理
② method,设置表单的提交方式,GET/POST
③ <input>,用户信息输入框,类型使用 type 设置输入框类型
④ <input>,用户信息提交按钮
models.py
from django.db import models
# Create your models here.
class UserInfo(models.Model):
id = models.AutoField('id', primary_key=True)
userName = models.CharField('姓名', max_length=20, null=False)
loginNum = models.IntegerField('登录账号')
userPassword = models.CharField('密码', max_length=16, null=False)
class Meta:
# 设置表名
db_table = 'UserInfo'
数据迁移执行生成数据表
手动插入数据
form.py
# -*- coding: utf-8 -*-
from django import forms
from .models import UserInfo
class UserInfoForm(forms.Form):
# id = forms.IntegerField(max_value=8, label='id')
userName = forms.CharField(max_length=20, label='姓名')
loginNum = forms.IntegerField(max_value=16, label='登录id')
userPassword = forms.CharField(max_length=16, label='密码')
# 下拉框
# 查询 UserInfo 的数据
values = UserInfo.objects.values('userName')
choices = [ (i+1, v['userName']) for i, v in enumerate(values)]
Name = forms.ChoiceField(choices=choices, label='已存在姓名')
urls.py
# -*- coding: utf-8 -*-
from django.urls import path
from . import views
urlpatterns = [
path('', views.userLogin, name='userLogin'),
]
views.py
from django.shortcuts import render
# Create your views here.
from .form import UserInfoForm
def userLogin(request):
v = UserInfoForm()
return render(request, 'Login.html', locals())
Login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="post">
<table>
{# 使用 as_table 将表单对象v以HTML的<table>标签进行展示 #}
{{ v.as_table }}
</table>
<input type="submit" value="申请">
</form>
</body>
</html>