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>