zoukankan      html  css  js  c++  java
  • django基于模型的表单

    1.url路由-------------------------------
    path("test/", app01_views.test)



    2.views.py视图和基于模型的表单-----------------------------------

    from django.shortcuts import render, HttpResponse

    # Create your views here.

    from django.db import connection
    from app01.models import *
    from django.db.models import Max,Min

    from django import forms
    from django.forms import widgets
    from django.db import models


    class NameModle( models.Model ):
    your_name = models.CharField(max_length=6)
    your_password = models.CharField( max_length=8 )

    class NameForm(forms.ModelForm):
    class Meta:
    model = NameModle
    fields = [ "your_name", "your_password" ]
    # fields = "__all__"
    error_messages = {
    "your_name":{ "required":"用户名不能为空",},
    "your_password": {"required": "密码不能为空", },
    }
    widgets = {

    "your_name": widgets.TextInput( attrs={ "class":"form-control" }, ),
    "your_password": widgets.TextInput(attrs={"class": "form-control"}, ),
    }

    # class NameForm( forms.Form ):
    # your_name = forms.CharField(required=True , max_length=6, label="your name" ,
    # error_messages={
    # "required" : "your name must have",
    # "max_length": "用户名最大长度不超过6",
    # },
    # widget = widgets.PasswordInput( attrs={"class":"form-control", } ),
    # )
    # your_password = forms.CharField(max_length=8 , label="your password")



    def test(request):
    if request.method == "POST":
    print("come post")
    form = NameForm( request.POST )
    if form.is_valid():
    print("验证通过")
    print(form.cleaned_data)
    else:
    print("验证失败")
    print(form.errors)
    else:
    form = NameForm()
    return render(request, "home.html", {"form": form})



    3.templates/home.html模板-------------------------------------
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

    <body>

    <div class="container">
    <div class="row">
    <div class="col-md-3"></div>
    <div class="col-md-6">

    <form action="/test/" method="POST" oninvalid class="form-inline">
    {% csrf_token %}
    {% for field in form %}
    <div class="form-group">
    {{ field.label }}
    {{ field }}
    {{ field.errors.0 }}
    <div >
    {% endfor %}
    <input type="submit" class="btn btn-default" value="Submit">
    </form>
    </div>
    <div class="col-md-3"></div>

    </div>

    </div>

    </body>
    </html>

    4、运行结果---------------------------

  • 相关阅读:
    ARM启动流程
    ARM机器码分析
    Ubuntu 14.04 dnw配置
    UNIX环境下的消息队列
    UNIX环境下的共享内存
    iptables详解
    iptables 相关名词的解释说明
    sphinx的安装配置和中文分词包coreseek
    linux防火墙iptables封IP,拒绝指定IP和网段的办法
    linux下注销其它用户或者tty的命令
  • 原文地址:https://www.cnblogs.com/harryTree/p/11791404.html
Copyright © 2011-2022 走看看