Python Flask教程学习02
创始人
2024-01-17 16:11:04

书接上文Python Flask教程学习01

文章目录

  • Flask 教程
    • Flask 会话
    • Flask 消息闪现
    • Flask 文件上传
    • Flask 扩展/寻找扩展

Flask 教程

Flask 会话

与Cookie不同,Session(会话)数据存储在服务器上。会话是客户端登录到服务器并注销服务器的时间间隔。需要在该会话中保存的数据会存储在服务器上的临时目录中。

from flask import render_template
from flask import make_response
from flask import Flask,session,redirect,url_for,escape,request
app=Flask(__name__)
#为每个客户端的会话分配会话ID。
#会话数据存储在cookie的顶部,服务器以加密方式对其进行签名。
#对于此加密,Flask应用程序需要一个定义的SECRET_KEY。(随便写)
app.secret_key='fkdjsafjdkfdlkjfadskjfadskljdsfklj'@app.route('/')
def index():if 'username' in session:username=session['username']return '登录用户名是:'+username+'
'+\"点击这里注销"return "您暂未登录,
"+\"点击这里登录" @app.route('/login',methods=['GET','POST']) def login():if request.method=='POST':#设置会话变量session['username']=request.form['username']return redirect(url_for('index'))return '''

''' @app.route('/logout') def logout():#释放会话变量session.pop('username',None)return redirect(url_for('index')) if __name__ == '__main__':app.run(debug=True)

http://127.0.0.1:5000/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Flask 消息闪现

from flask import Flask, flash, redirect, render_template, request, url_for
app = Flask(__name__)
app.secret_key = 'random string'
@app.route('/')
def index():return render_template('index.html')@app.route('/login', methods = ['GET', 'POST'])
def login():error = Noneif request.method == 'POST':if request.form['username'] != 'admin' or request.form['password'] != 'admin':error = 'Invalid username or password. Please try again!'#如果登录成功,则会在索引模板上刷新成功消息。else:'''flash(message, category)message 参数是要闪现的实际消息。category 参数是可选的。它可以是“error”,“info”或“warning”。'''flash('You were successfully logged in')return redirect(url_for('index'))#如果出现错误,则会重新显示登录模板,并显示错误消息。return render_template('login.html', error = error)if __name__ == '__main__':app.run(debug=True)

login.html



Login

Username
Password
{% if error %}

Error: {{ error }}

{% endif %}

index.html



Index

{% with messages = get_flashed_messages() %}{% if messages %}{% for message in messages %}

{{ message }}

{% endfor %}{% endif %}{% endwith %}

Welcome!

{ url_for('login') }}">login

在这里插入图片描述
点击登录链接(用户名及密码在程序里设置,例子给的都是admin)
在这里插入图片描述
提交后显示
在这里插入图片描述

Flask 文件上传

新建文件夹upload用来保存成功上传后的文件

from flask import Flask,render_template,request
'''
目标文件的名称可以是硬编码的,
也可以从 ​request.files[file] ​对象的​ filename ​属性中获取。
但是,建议使用 ​secure_filename()​ 函数获取它的安全版本。
'''
from werkzeug.utils import secure_filename
import osapp=Flask(__name__)
#定义上传文件夹的路径
#app.config['MAX_CONTENT_LENGTH'] 指定要上传的文件的最大大小(以字节为单位)
app.config['UPLOAD_FOLDER']='upload/'@app.route('/upload')
def upload_file():return render_template('upload.html')
@app.route('/uploader',methods=['GET','POST'])
def uploader():if request.method=='POST':f=request.files['file']print(request.files)#secure_filename获取中文文件名需自行百度解决,不难f.save(os.path.join(app.config['UPLOAD_FOLDER'],secure_filename(f.filename)))return 'file uploaded successfully'else:return render_template('upload.html')
if __name__ == '__main__':app.run(debug=True)

upload.html


File Upload

http://localhost:5000/upload
在这里插入图片描述
我选了一张图片提交
注意secure_filename获取中文文件名时,中文会被省略。网上有很多博客写了解决办法,我就不做更改了
在这里插入图片描述

显示提交成功
在这里插入图片描述
上传后的文件被保存在了upload文件夹
在这里插入图片描述

Flask 扩展/寻找扩展

在这里插入图片描述
Flask 的扩展通常命名为Flask-Foo或者Foo-Flask
通过pip安装
寻找Flask扩展地址
这篇博客就先到这里
下一篇博客再对几个扩展做进一步学习

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
怎么样消灭臭虫 臭虫用什么药消... 奔奔虫控|被吸血臭虫骚扰的滋味,你体会过吗?相信被臭虫骚扰过的人都不想再体验一次了吧?那么臭虫应该怎...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
苁蓉的食用方法 鲜苁蓉的吃法有... 肉苁蓉号称“温而不热,补而不峻,暖而不燥,滑而不泄,故有从容之名。”历来也是传统药食同源的滋补佳品。...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...