摘要:項(xiàng)目需要使用上傳下載文件到上,搜了一圈沒有能直接結(jié)合使用的插件,所以動(dòng)手造了個(gè)輪子。只實(shí)現(xiàn)了基本的上傳,下載的功能,后續(xù)可能會(huì)完善預(yù)覽權(quán)限控制等功能。然后在中使用該并傳遞給存到最后像使用普通的一樣在中即可。
項(xiàng)目需要使用 flask 上傳、下載文件到 google storage 上,
搜了一圈沒有能直接結(jié)合 wtform 使用的插件,所以動(dòng)手造了個(gè)輪子。
只實(shí)現(xiàn)了基本的上傳,下載的功能,后續(xù)可能會(huì)完善預(yù)覽、權(quán)限控制等功能。
安裝和使用方法參見 README --> https://github.com/FingerLiu/...
flask-wtf-storageextend flask-wtf to support saving data to google storage
Installationpip install flask-wtf-storage
Usage1 首先引入我們需要的頭文件
from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from flask_wtf_storage import ( MultipleFileField, FileField, FileDisplayField, StorageForm )
2 然后在 form 中定義上傳文件要使用的 form 及字段
class RegistrationForm(StorageForm):
website = StringField("website") single_file_example = FileField() multi_files_example = MultipleFileField() submit = SubmitField("OK")
這里,為了演示,我們使用了 FileField 和 MultipleFileField 兩種類型的字段。 FileField 用來實(shí)現(xiàn)只能上傳一個(gè)文件的 Input 框, MultipleFileField 用來實(shí)現(xiàn)能夠選擇多個(gè)文件的 Input 框。 3 然后在 view 中使用該 form 并傳遞給 template
@current_app.route("/register/", methods=["GET", "POST"])
def register():
form = RegistrationForm() if form.validate_on_submit(): # 存到 datastore data = form.data data.pop("csrf_token") data.pop("password2") login(data) return redirect(url_for("profile.html")) return render_template("register.html", form=form)
4 最后像使用普通的 wtform 一樣在 template 中 render form 即可。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/40957.html
摘要:注原文作者,原文地址為在這個(gè)教程中,我們將使用和構(gòu)建一個(gè)博客。在開發(fā)期間,這將允許我們把它們運(yùn)行在不同的端口例如和?,F(xiàn)在我們將進(jìn)入目錄并使用運(yùn)行這個(gè)腳本。示例創(chuàng)建一篇文章為了創(chuàng)建一篇文章,你需要發(fā)送一個(gè)請(qǐng)求給。 注:原文作者 John Kevin M. Basco,原文地址為 Building a blog using Flask and AngularJS Part 1 在...
摘要:注原文作者,原文地址為在這個(gè)教程中,我們將使用和構(gòu)建一個(gè)博客。在開發(fā)期間,這將允許我們把它們運(yùn)行在不同的端口例如和?,F(xiàn)在我們將進(jìn)入目錄并使用運(yùn)行這個(gè)腳本。示例創(chuàng)建一篇文章為了創(chuàng)建一篇文章,你需要發(fā)送一個(gè)請(qǐng)求給。 注:原文作者 John Kevin M. Basco,原文地址為 Building a blog using Flask and AngularJS Part 1 在...
摘要:每個(gè)表單域都可以連接到一個(gè)或多個(gè)是一個(gè)用于檢查用戶提交的輸入是否合法的函數(shù)。表單域構(gòu)造函數(shù)的第一個(gè)參數(shù)是一個(gè),在渲染表單到時(shí)會(huì)使用。驗(yàn)證確保提交的表單域不為空。表單域驗(yàn)證都是直接從包中導(dǎo)入。表格展示了一組支持的標(biāo)準(zhǔn)表單域。 第二章中介紹的request對(duì)象公開了所有客戶端發(fā)送的請(qǐng)求信息。特別是request.form可以訪問POST請(qǐng)求提交的表單數(shù)據(jù)。 盡管Flask的request...
摘要:特別是可以訪問請(qǐng)求提交的表單數(shù)據(jù)。表單的代碼生成和驗(yàn)證提交的表單數(shù)據(jù)就是兩個(gè)很好的例子。優(yōu)勢(shì)擴(kuò)展使得處理表單能獲得更愉快的體驗(yàn)。設(shè)計(jì)了表單庫來使可以更加簡便地管理操作表單數(shù)據(jù)。 1. 為什么使用Flask-WTF? request對(duì)象公開了所有客戶端發(fā)送的請(qǐng)求信息。特別是request.form可以訪問POST請(qǐng)求提交的表單數(shù)據(jù)。 盡管Flask的request對(duì)象提供的支持足以處理w...
摘要:和都是很好用的插件,然而當(dāng)它們結(jié)合到一起后,就不是那么美妙了。當(dāng)然了寫一個(gè)完整的擴(kuò)展還是很麻煩的??梢钥垂俜綌U(kuò)展的源碼。。。 Flask-WTF和Flask-SQLAlchemy都是很好用的插件,然而當(dāng)它們結(jié)合到一起后,就不是那么美妙了。 問題的提出 在models.py中定義了一個(gè)Article、Category和Tag類: class Article(db.Model): ...
閱讀 2459·2021-11-23 09:51
閱讀 2061·2021-10-14 09:43
閱讀 2845·2021-09-27 13:35
閱讀 1224·2021-09-22 15:54
閱讀 2607·2021-09-13 10:36
閱讀 3957·2019-08-30 15:56
閱讀 3480·2019-08-30 14:09
閱讀 1797·2019-08-30 12:57