<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        Flask學習筆記-在Bootstrap框架下Web表單WTF的使用_html/css

        來源:懂視網 責編:小采 時間:2020-11-27 16:20:21
        文檔

        Flask學習筆記-在Bootstrap框架下Web表單WTF的使用_html/css

        Flask學習筆記-在Bootstrap框架下Web表單WTF的使用_html/css_WEB-ITnose:表單的處理一般都比較繁瑣和枯燥,如果想簡單的使用表單就可以使用Flask-WTF插件,同時我們把WTF融合到Bootstrap中這樣樣式的問題都自動解決了,本篇文章就為您講解這些內容。 先要注意一點,在使用WTF的時候我們要在程序中設定一下SECRET_KEY,不
        推薦度:
        導讀Flask學習筆記-在Bootstrap框架下Web表單WTF的使用_html/css_WEB-ITnose:表單的處理一般都比較繁瑣和枯燥,如果想簡單的使用表單就可以使用Flask-WTF插件,同時我們把WTF融合到Bootstrap中這樣樣式的問題都自動解決了,本篇文章就為您講解這些內容。 先要注意一點,在使用WTF的時候我們要在程序中設定一下SECRET_KEY,不

        表單的處理一般都比較繁瑣和枯燥,如果想簡單的使用表單就可以使用Flask-WTF插件,同時我們把WTF融合到Bootstrap中這樣樣式的問題都自動解決了,本篇文章就為您講解這些內容。

        先要注意一點,在使用WTF的時候我們要在程序中設定一下SECRET_KEY,不然會出現"Must provide secret_key to use csrf"錯誤。

        app.config['SECRET_KEY'] = 'xxxx'

        Flask-Bootstrap在前面的文章中已經講過了,不再重復。

        后臺WTF編碼

        先看實例:

        from flask.ext.wtf import Formfrom wtforms import StringField, SubmitField, SelectFieldfrom wtforms.validators import DataRequiredclass BookForm(Form): name = StringField('姓名', validators=[DataRequired()]) phone = StringField('電話', validators=[DataRequired()]) photoset = SelectField('套系', choices=[('SET1', '1'), ('SET2', '2')]) submit = SubmitField("預定") @app.route('/book/', methods=['GET', 'POST'])def book_photo(): name = None phone = None photoset = None booker = BookForm() if booker.validate_on_submit(): name = booker.name.data phone = booker.phone.data photoset = booker.photoset.data return render_template('book_photo.html', form=booker, name=name, phone=phone, photoset=photoset)

        BookForm是我們自己定義的一個Form對象,里面包含了兩個文本框和一個下拉選擇框,很簡單。

        class BookForm(Form): name = StringField('姓名', validators=[DataRequired()]) phone = StringField('電話', validators=[DataRequired()]) photoset = SelectField('套系', choices=[('SET1', '1'), ('SET2', '2')]) submit = SubmitField("預定")

        validators是輸入檢查控制器,有很多種,這里使用的是DataRequired用于必填項的檢查,還有字符長度以及輸入類型等等好多控制器,需要說明一下在SelectField中不要使用這些不然會報錯,這個地方我沒有深入研究,暫時就不使用了,哈。

        book_photo()是/book/的處理函數,我們初始化了文本框的默認為空,還初始化了BookForm對象,render_template函數指定了頁面和form對象。

        if booker.validate_on_submit(): name = booker.name.data phone = booker.phone.data photoset = booker.photoset.data

        這段處理是在表單提交后的接收參數值的處理邏輯,同時還是用

        return render_template('book_photo.html', form=booker, name=name, phone=phone, photoset=photoset)

        返回了name,phone和photoset值到book_photo.html頁面。

        下面我們就來看下頁面的代碼

        表單頁面

        {% extends "base.html" %}{% import "bootstrap/wtf.html" as wtf %}{% block page_content %} 數據: 

        {% if name %} {{ name }} {% endif %}
        {% if phone %} {{ phone }} {% endif %}
        {% if photoset %} {{ photoset }} {% endif %}

        {{ wtf.quick_form(form) }}{% endblock %}

        很簡單吧,因為我們使用了bootstrap/wtf.html的基模板,很好的跟bootstrap結合起來。

        重點是:

        {{ wtf.quick_form(form) }}

        我們利用wtf.quick_form函數自動生成了表單,非常cool對不對。

         數據: 

        {% if name %} {{ name }} {% endif %}
        {% if phone %} {{ phone }} {% endif %}
        {% if photoset %} {{ photoset }} {% endif %}

        這段是表單提交后顯示提交數據的處理,所以我們在一個頁面上就搞定了表單的顯示和提交后的數據顯示。

        顯示結果

        還挺不錯的是不是。

        高級-重定向會話

        我們提交表單后最后一個請求為POST,這樣我們在刷新頁面的時候會出現重新提交表單,通過重定向會話就可以解決這個問題(這個技巧稱“Post/重定向/Get模式”),還有就是可以通過重定向會話實現自定義的跳轉等更靈活的控制。

        重定向會話我們要利用session機制實現,代碼如下:

        from flask import Flask, render_template, send_from_directory, session, redirect, url_for@app.route('/book/', methods=['GET', 'POST'])def book_photo(): name = None phone = None photoset = None booker = BookForm() if booker.validate_on_submit(): session['name'] = booker.name.data session['phone'] = booker.phone.data session['photoset'] = booker.photoset.data return redirect(url_for('book_photo')) return render_template('book_photo.html', form=booker, name=session.get('name'), phone=session.get('phone'), photoset=session.get('photoset'))

        高級-Flash消息

        如果需要頁面通知用戶消息的話,可以使用Flash消息,也很簡單,代碼如下:

        from flask import Flask, render_template, send_from_directory, session, redirect, url_for, flash@app.route('/book/', methods=['GET', 'POST'])def book_photo(): name = None phone = None photoset = None booker = BookForm() if booker.validate_on_submit(): old_name = session.get('name') if old_name is not None and old_name != booker.name.data: flash('您的提交發生變化') session['name'] = booker.name.data session['phone'] = booker.phone.data session['photoset'] = booker.photoset.data return redirect(url_for('book_photo')) return render_template('book_photo.html', form=booker, name=session.get('name'), phone=session.get('phone'), photoset=session.get('photoset'))

        判斷字段值的變化,設置提示信息

         if old_name is not None and old_name != booker.name.data: flash('您的提交發生變化')

        頁面上也需要處理:

        {% extends "base.html" %}{% import "bootstrap/wtf.html" as wtf %}{% block page_content %} 數據: 

        {% if name %} {{ name }} {% endif %}
        {% if phone %} {{ phone }} {% endif %}
        {% if photoset %} {{ photoset }} {% endif %}

        {% for message in get_flashed_messages() %} {{ message }} {% endfor %} {{ wtf.quick_form(form) }}{% endblock %}

        通過for/endfor進行控制,也是使用的bootstrap的樣式

        {% for message in get_flashed_messages() %}  {{ message }}{% endfor %}

        效果如下:

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Flask學習筆記-在Bootstrap框架下Web表單WTF的使用_html/css

        Flask學習筆記-在Bootstrap框架下Web表單WTF的使用_html/css_WEB-ITnose:表單的處理一般都比較繁瑣和枯燥,如果想簡單的使用表單就可以使用Flask-WTF插件,同時我們把WTF融合到Bootstrap中這樣樣式的問題都自動解決了,本篇文章就為您講解這些內容。 先要注意一點,在使用WTF的時候我們要在程序中設定一下SECRET_KEY,不
        推薦度:
        標簽: html css 框架
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲精品美女久久久久| 亚洲日本一区二区| 亚洲毛片不卡av在线播放一区| 亚洲日韩精品A∨片无码| 2019亚洲午夜无码天堂| 一个人看的www免费在线视频| 狼群影院在线观看免费观看直播| 免费一级国产生活片| 亚洲欧洲国产视频| 怡红院免费全部视频在线视频| 国产成人免费爽爽爽视频| 亚洲国产精品无码久久久蜜芽| 亚洲人成网站在线在线观看| 国产精品白浆在线观看免费| 亚洲成?v人片天堂网无码| 亚洲av乱码一区二区三区香蕉| 波多野结衣免费一区视频| 亚洲 另类 无码 在线| 亚洲欧美日韩中文字幕在线一区| 麻豆国产精品入口免费观看| 亚洲中文字幕久久精品无码2021| 搡女人免费视频大全| 亚洲欧洲国产精品久久| 全免费一级毛片在线播放| 深夜久久AAAAA级毛片免费看| 在线视频免费国产成人| 亚洲色大成网站www| 最近中文字幕免费mv视频8| 香蕉视频免费在线| 亚洲免费视频一区二区三区| 国产麻豆成人传媒免费观看| 国产∨亚洲V天堂无码久久久| 亚洲精品国产免费| 日韩在线观看免费| 亚洲网站免费观看| 亚洲国产综合精品中文字幕| 最近中文字幕无免费| 亚洲欧洲日本国产| 亚洲国产成人久久综合区| 99re在线免费视频| 亚洲图片校园春色|