The acquisition forms django- form information (b)

urls.py

from django.urls import path
from . import views


urlpatterns = [
    path('',views.index,name="index"),
    path('register/',views.IndexForms.as_view(),name='register')
]

forms.py

from Django Import Forms 

class RegisterForms (forms.Form):
     # Test = forms.Field (required = False, label = 'test', initial = 'Enter Username', help_text = 'Enter Username', 
    # label_suffix = '>>>') 
    choices = { 
        ( . 1, ' M ' ), (2, ' F ' ), (3, ' Confidential ' ) 
    } 
    hobbies = [(. 1, ' football ' ), (2 ' basketball ' ), (3, ' reading ')]
    formats=[
        '%Y-%m-%d',
        '%m/%d/%Y',
    ]
    year_list=[
        1990,1991,1995,2001
    ]
    username=forms.CharField(min_length=4,max_length=10,label='用户名',
                             widget=forms.TextInput(attrs={'class':'custom-forms'}))
    password=forms.CharField(widget=forms.PasswordInput(attrs={'class':'custom-forms'}),min_length=4,max_length=8,label='输入密码')
    repassword=forms.CharField(widget=forms.PasswordInput(attrs={'class':'custom-forms'}),min_length=4,max_length=8,label='确认密码')
    age=forms.IntegerField(widget=forms.NumberInput(attrs={'class':'custom-forms'}),label='年龄',min_value=18,max_value=120)
    gender=forms.ChoiceField(choices=choices,label=''Sex,initial=1)
    # email=forms.EmailField(widget=forms.EmailInput(attrs={'class':'custom-forms'}),label='邮箱')
    # phone=forms.CharField(widget=forms.TextInput(attrs={'class':'custom-forms'}),max_length=11,label='电话')
    hobby = forms.MultipleChoiceField(label='爱好', choices=hobbies, widget=forms.CheckboxSelectMultiple)
    birthday=forms.DateField(label='出生日期',input_formats=formats)
    introduce=forms.CharField(widget=forms.Textarea(attrs={'class':'custom-forms'}),label=' Self-introduction ' )

views.py

from .forms import RegisterForms
from django.views import View
from django.http import HttpResponse
from django.shortcuts import render
class IndexForms(View): def get(self,request): forms =RegisterForms() return render(request,'index.html',{'forms':forms}) def post(self,request): forms =RegisterForms(request.POST) if forms.is_valid(): username=forms.cleaned_data.get('username') password = forms.cleaned_data.get('password') repassword = forms.cleaned_data.get('repassword') age = forms.cleaned_data.get('age') gender = forms.cleaned_data.get('gender') hobby = forms.cleaned_data.get('hobby') birthday = forms.cleaned_data.get('birthday') introduce = forms.cleaned_data.get('introduce') # print([username,password,repassword,birthday,age,gender,hobby,introduce]) context={ 'datalist':{ 'username':username, 'password':password, 'repassword':repassword, 'age': age, 'gender': gender, 'hobby': hobby, 'birthday':birthday, 'introduce':introduce, } } return render(request,'home.html',context=context) else: return HttpResponse('Sorry')

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{title}}</title>
    <link rel="stylesheet" href={% static 'css/index.css' %}>
</head>
<body>
    <div class="content">
        <!--<h1>这是主界面</h1>-->
        <form action="" method="post">
            <table>
                <!--as_p,as_ul-->
                {{forms.as_table}}
                <tr>
                    <td><input type="submit" value="submit" name="submit"></td>
                </tr>
            </table>
        </form>
        <!--{% block content %}-->
        <!--{% endblock %}-->
    </div>
</body>
</html>

home.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    {% for k,v in datalist.items%}
    <h1>{{k}}---{{v}}</h1>
    {% endfor %}
</body>
</html>

index interface:

 

 Enter the appropriate information, click submit, the information will spread home interface and display

 

Guess you like

Origin www.cnblogs.com/xiximayou/p/11761054.html