python django Form表單

Django 擁有本身獨立的表單功能塊,能夠完成:前端

  一、表單的定義數據庫

  二、表單的校驗django

  三、表單的前端樣式app

等功能,方便咱們開發,那麼接下來,咱們看一下表單的定義ui

首先咱們肯定咱們要編寫的功能,一個提供給博客的訪客發送本身的聯繫方式的功能。而且搭建相對應的數據庫url

1 from django.db import models 2 
3 class Connection(models.Model): 4     con_name = models.CharField(max_length = 32,verbose_name = "聯繫人姓名") 5     con_phone = models.CharField(max_length=32, verbose_name="聯繫人姓名") 6     con_email = models.EmailField(verbose_name="聯繫人姓名") 7 
8     def __str__(self): 9         return "%s : %s"%(self.con_name,self.con_email)

表單的定義spa

  form表單的定義經過Django下面的form類進行定義,過程和Django的模型定義相似,首先在app目錄當中建立form定義的專屬文件form.py,而後開始咱們的編寫。code

  經常使用的表單定義方法有兩種:orm

  一、  常規定義,咱們按照與model模型定義相似的定義方法定義表單blog

1 #coding:utf-8
2 from django import forms 3 
4 class ConnectionForm(forms.Form): 5     con_name = forms.CharField(max_length = 32,label = "聯繫人姓名") 6     con_phone = forms.CharField(max_length=32, label="聯繫人姓名") 7     con_email = forms.EmailField(label="聯繫人姓名")

  這樣咱們就定義了一個表單,這個表單和上面講課用的聯繫人表單的效果是如出一轍的。固然慣用form字段裏面經常使用的字段和對應的參數,也給你們列出             來:

       經常使用的字段

              1charfield  對應單行輸入框

              2booleanfield  對應checkbox選擇框

              3choicefield 對應下拉菜單選擇框   重要參數choice

              4datafield  對應一個單行輸入框,可是會自動轉化爲日期類型

              5emailfield  對應輸入框,自動驗證是不是郵件地址

              6filefield  對應文件上傳選項

              7filepathfiled 對應一個(文件組成的下拉菜單)選擇,必須參數path=''.選項爲這個地址裏邊全部的文件。可選參數recursive=True是否包含子文件夾裏的文件

              8imagefield  圖片上傳按鈕。須要pillow模塊

              9urlfield  對應輸入框 自動驗證是否爲網址格式

       字段經常使用的參數

              1rqeuired    字段是否爲必填 默認爲True

              2label  相似於輸入框前邊的提示信息

              3initial 初始值(佔位符)就是給出一個默認值

              4help_text  字段的輔助描述

              5error_message={}  覆蓋{{form.name.error}}信息

              6disable  字段是否能夠修改 

              7widget 負責渲染網頁上HTML表單的輸入元素和提取提交的原始數據。

              8max_length 最大長度

              9min_length 最小長度

        二、對應Django模型定義

              爲了保證咱們定義的表單模型和數據庫提交模型的一致性,咱們能夠經過Form表單類當中嵌套元類Meta來實現經過模型快速的定義表單

1 #coding:utf-8
2 from django import forms 3 from Article.models import Connection #首先導入要對接的數據庫
4 class ConnectionForm(forms.ModelForm): #注意,咱們如今繼承的是ModelForm而不是Forms
5     class Meta: #這是一個元類
6         model = Connection #指定models對應的模型
7         fields = ["con_name","con_phone","con_email"] #指定顯示的字段

    固然,這麼簡單的代碼只能完成最簡單的效果,咱們還須要一些經常使用的參數

               一、fields 要展現的字段,接收的是一個列表,若是不寫默認是models的全部字段

     二、exclude 不要展現的字段,接收的是一個列表,排除的字段,默認沒有

     三、widgets 是一個模型字段的名稱對應的樣式的字典

     四、labels 是一個模型字段的名稱對應的標籤的字典

     五、help_texts 是一個模型字段的名稱對應的幫助文檔的字典

     六、error_messages是一個模型字段的名稱對應的錯誤提示的字典

  這種寫法使用的比較少,舉一個例子來看看對應Django模型定義表單的參數使用

 1 #coding:utf-8
 2 from django import forms  3 from Article.models import Connection #首先導入要對接的數據庫
 4 class ConnectionForm(forms.ModelForm): #注意,咱們如今繼承的是ModelForm而不是Forms
 5     class Meta: #這是一個元類
 6         model = Connection #指定models對應的模型
 7         fields = ["con_name","con_phone","con_email"] #指定顯示的字段
 8         widgets = {  9             "con_name": forms.TextInput(attrs = {"style":"font-size:20px;"}), 10             "con_phone": forms.TextInput(attrs={"style": "font-size:20px;"}), 11             "con_email": forms.TextInput(attrs={"style": "font-size:20px;"}) 12         } #指定對應標籤的樣式
相關文章
相關標籤/搜索