zoukankan      html  css  js  c++  java
  • django form 定义

      django是我接触过的框架中最好用的form,之前我也搞过php,也用过php的一些框架。但是感觉他们在处理form的时候都是力不从心。要不就是集成度太高了,不好扩展。要不就是功能不太强大不能应对web现在的复杂的环境,但是自从我学习了python,接触了它以后就发现django的form是多少的爽阿。下面我介绍下form的一些基本的东西,可能我介绍的不好。大家不要扔鸡蛋白菜哈!

    form表单可以自己定义表单也可以通过继承model来生成:
    表单主要完成4个功能
    1显示表当的样式(Widget)
    2通过规则验证表单数据(Field)
    3显示验证错误信息(Form)
    4把提交的数据转换成PYTHON的数据类型并提交表单(Form Media)

    我分为几节来介绍django form

    第一节的话。我主要介绍怎么定义:

    表单定义有2种形式。一个是自己定义表单类型。一个是继承model类型。。
    1自己定义的表单类型
    from django import forms

    class ContactForm(forms.Form):
        subject = forms.CharField(max_length=100)
        message = forms.CharField()
        sender = forms.EmailField()
        cc_myself = forms.BooleanField(required=False)


    2继承model类型:

    model:

    class Article(model.models):

    price = models.CharField('价格', max_length=50)


    from django.forms import ModelForm
    class ArticleForm(ModelForm):
         这个可以重写继承的model的字段类型。。

       比如这里我重新定义下我的表单字段的类型,因为如果是继承model的话。他会根据model的类型来验证表单数据的

    比如你model定义的这个字段是char:那么这个字段只允许接受字符类型的数据,这样就能使的form的扩展性更好

    例如:我希望price这个字段只接受int类型的数据的话

    我就重写:price = forms.CharField(label='价格')
         class Meta:
            model = Article(关联的model)
              fields = ('name', 'title')(定义只包含列出的字段的表单)
              exclude = ('birth_date',)(定义排除列出的字段的表单)

    如果你理解了django from的定义的话。继续可以往前学习: [django form 显示] [django form 验证] [django reverse()] [django forms DateTimeField]

  • 相关阅读:
    ES6常用语法简介
    webpack核心概念
    前端模块化规范详解
    使用Node.js原生代码实现静态服务器
    Node.js脚手架express与前段通信【socket】
    临门一脚- Node.js
    redis缓存穿透和雪崩
    redis哨兵模式
    redis主从复制
    redis发布订阅
  • 原文地址:https://www.cnblogs.com/wanpython/p/2798318.html
Copyright © 2011-2022 走看看