flask url_for的使用


先说一下static_floder,static_url_path

#######app.py
from flask import Flask,redirect,render_template,jsonify,send_file,request,url_for # app
= Flask(__name__,template_folder="temp",static_folder="lvxing",static_url_path="/static") #测试用的模板不使用url_for,一旦静态资源文件名改变,需要两个配置 app = Flask(__name__,template_folder="temp",static_folder="lvxing")#测试用的模板不使用url_for,这样是错的
 #####static_folder指认静态文件存放目录(默认是程序根目录下的static文件夹,如果改变名称了,而模板中引用静态文件写的是static,解决办法是,添加static_floder="此时存放静态资源的文件名
####")而模板中的自动访问路径是static/文件名,故还需要配置 static_url_path="/static",告诉程序我访问的static路径,不要拒绝我
###模板中使用url_for,如下方的login.html ,只需要配置static-floder,图片请求路径为/lvxing......如果非得配置static_url_path="static",模板图片请求路径为/static.... @app.route("/imger",<int:page>) def imge(page): return "huhu" @app.route("/fan") def fan(): print("oooo",url_for("img",oo="ui", _external=True)) #生成查询参数oooo http://127.0.0.1:5000/imger/?oo=ui 此时img函数是不能携带page动态参数的 print("oooosas",url_for("img",page=4)) #生成相对路径 oooosas /imger/4 return "tangjianwei"
app.run(debug=True) #启动flask

####login.html
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Title</title> <meta name="viewport" content="width=device-width, initial-scale=1",> </head> <body> <h1>jiji</h1> <img src="{{ url_for("static",filename="333.jpg") }}" alt=""> #配置static_folder和static_url_path请求的时候发送路径http://ip:5000/static/333.jpg
                                        #只配置static_folder路径为/lvxing.333.jpg
                                        #配置static_folder之后,只要模板中filename随着静态资源文件夹下的资源名自动变化
#<img src="/static/444.jpg" alt="">#请求的时候发送路径http://ip:5000/static/444.jpg

</body> </html>

url_for蓝图中的使用

#蓝图文件中 
flask import Blueprint,render_template,redirect,url_for cat_obj=Blueprint("cat_obj",__name__) @cat_obj.route("/cat3") def add_def2(): print(t) return "我是cat3" @cat_obj.route("/cat1") def add_def3(): return redirect(url_for(".add_def2"))
#####app.py
from
flask import Flask,session,redirect,request,render_template from add import add_lv from alter import alter from del_lv import dell from cat import cat app = Flask(__name__) app.register_blueprint(cat.cat_obj,url_prefix="/cat") #注册蓝图 @app.route("/") def index(): print("我是视图函数") return "123" app.run(debug=True)

#浏览器访问http://127.0.0.1:5000/cat/cat1 ---->然后进行跳转到def add_def2函数

引用资料

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM