天天看點

form表單form.py

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表單form.py

手動插入資料

form表單form.py

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>
           
form表單form.py