flask上傳圖片(本地,七牛)

效果圖:
最初默認(rèn)圖.png
效果圖.png

文件被寫入.png
html代碼核心
<body>
{%  set file_name=filename %}
<form role="form" action="/update/" method="post" enctype="multipart/form-data">
    <div class="form-group">
        <input name="name" type="text"/>
        <button type="submit" class="btn btn-danger">提交</button>
         <input name="files" type="file"/>
    </div>
</form>
<h3>姓名:{{ username }}</h3>
<img  alt="圖片丟失了" onerror="this.src='http://image.biaobaiju.com/uploads/20180928/16/1538124027-aMtYOyIRzC.jpeg'" 
style="width: 80px; height: 80px;" src="{{ url_for('static',filename=file_name)}}">
</body>

注意:enctype="multipart/form-data"很關(guān)鍵

后臺(tái)代碼
@front.route('/update/', methods=["GET", "POST"])
def up_pic():
    if request.method == "POST":
        name = request.form["name"]
        try:
            file = request.files.get("files")
#寫的絕對(duì)路徑,可自己修改
            path_static="D:\Python_project\Todo_api\static\img"
            up_path=os.path.join(path_static,file.filename)
#seession保存用戶名和圖片名稱,圖片名稱加個(gè)img/前綴,為了和html中匹配
            session['filename']="img/"+file.filename
            session['username']=name
#文件保存
            file.save(up_path)
        except:
            print("沒傳文件")
        return redirect(url_for('.up_pic'))
    else:
        filename=session.get("filename")
        username=session.get("username")
        data={
            'filename':filename,
            'username':username
        }
        return render_template("front/index.html",**data)


上傳圖片到七牛

在七牛注冊(cè),并創(chuàng)建對(duì)象存儲(chǔ)

  1. 服務(wù)器返回七牛token憑證
@app_v1.route("/uptoken/")
def up_token():
    access_key=""
    secret_key=''
    q=qiniu.Auth(access_key,secret_key)
    bucket='todo'
    token=q.upload_token(bucket)
    return  jsonify({'token':token})

在客戶端,比如android,可以請(qǐng)求該地址拿到token,然后在執(zhí)行上傳,上傳文件會(huì)把圖片上傳上去,并且會(huì)返回一個(gè)key,這個(gè)key就可以在后臺(tái)和model綁定寫到數(shù)據(jù)庫(kù)中,展示的時(shí)候就是七牛的域名+文件名。前端的操作都一樣,只是代碼寫法不一樣,

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容