• Django form入门详解--1


     form在django中的作用:

      1、可以用于自动生成form的html

      2、数据校验

      3、与model一在一起使用、可以大的方便数据驱动型网站的开发

    编程中有许多的东西是“不可描述”的、只有动手去操作一下才会有感觉、下面是一个form使用的入门级例子

    1、定义form类:

    from django import forms 
    
    class NameForm(forms.Form):
        your_name = forms.CharField(label='Your name', max_length=100)

    2、在template中使用form:

    <html>
        <head>
            <title>your name</title>
            <meta charset="utf8"/>
        </head>
    
        <body>
            <form action={% url 'your-name' %} method="POST">
                {% csrf_token %} 
                {{ form }}
                <input type="submit" value="submit">
            </form>
        </body>
    </html>

     3、创建视图:

    from django.shortcuts import render
    from django.http import HttpResponse
    from app01.forms import NameForm
    #from django.http import views
    # Create your views here.
    
    
    def yourName(request):
        """
        """
        if request.method == 'POST':
            #根据POST上来的数据创建form表单
            form = NameForm(request.POST)
            #校验表单的数据
            if form.is_valid():
                #返回一个类似 Hello xxx的页面
                return HttpResponse('Hello {0}'.format(form.cleaned_data['your_name']))
        #如果不是POST那么就让用户填写表单数据
        return render(request,'app01/your-name-form.html',context={'form':NameForm()})

     4、防问your-name页面:

      get的方式访问页面

      填写名字到输入框

       提交表单数据

    总结:

      1、上面的例子中用于了form的两个工能,一个是自动渲染html标签、另一个是数据校验

      页面的html代码如下:

    <html>
        <head>
            <title>your name</title>
            <meta charset="utf8"/>
        </head>
    
        <body>
            <form action=/app01/yourname method="POST">
                <input type='hidden' name='csrfmiddlewaretoken' value='H1wmfUgQ6yMjJyEAjhnjnlHXOSjxLUKlhyjEoJBqArgQJaTTKygpxcL6ZIjXsDom' /> 
                <tr><th><label for="id_your_name">Your name:</label></th><td><input type="text" name="your_name" maxlength="100" required id="id_your_name" /></td></tr>
                <input type="submit" value="submit">
            </form>
        </body>
    </html>

      数据检验

            if form.is_valid():
                #返回一个类似 Hello xxx的页面
                return HttpResponse('Hello {0}'.format(form.cleaned_data['your_name']))

    ----------------------------------------------------------------------------------------------

  • 相关阅读:
    [译]《Sphinx权威指南》
    sphinx 配置文件全解析
    利用 crontab 來做 Linux 固定排程
    http协议中用于上传多个文件的 multipart 字段
    Python 代码覆盖率统计工具 coverage.py
    Disruptor 基础篇
    NPM:常用命令的生命周期脚本
    十大经典排序算法(动图演示)【转】
    TypeScript Jest 调试
    NPM: 日常开发环境配置
  • 原文地址:https://www.cnblogs.com/JiangLe/p/8582703.html
Copyright © 2020-2023  润新知