url链接(url_for)与加载静态文件(static文件夹下的js、css、image)

url链接和加载静态文件
url链接:
1、语法:url_for('static',filename='路径')
2、静态文件,flask会从static文件夹中开始寻找,所以不需要再写static这个路径
3、可以加载CSS/js/image 静态文件
    <link rel="stylesheet" href="{{url_for('static',filename='css/index.css')}}">
    <script src="{{url_for('static',filename='js/index.js')}}"></script>

<img src="{{url_for('static',filename='image/zhiliao.png')}}" alt="">

例子如下:

服务入口文件:

#encoding:utf-8
from flask import Flask,render_template

app = Flask(__name__)


@app.route('/')
def index():
    return render_template('index.html')

@app.route('/login/')
def login():
    return render_template('login.html')

if __name__ == '__main__':
    app.run(debug = True)
index页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
    <!--一般来说,不会把css样式写在这里,会单独卸载static文件夹,用css文件来存放所需的样式,flask默认从static中寻找-->
    <!--再通过url_for('static',filename='文件路径')的形式引入到这里来-->
    <link rel="stylesheet" href="{{url_for('static',filename='css/index.css')}}">
    <script src="{{url_for('static',filename='js/index.js')}}"></script>
</head>
<body>
<a href="{{ url_for('login') }}">登陆</a>  <!--意义:点击登陆后,就跳到login.html页面中了-->
<img src="{{url_for('static',filename='image/zhiliao.png')}}" alt="">
</body>
</html>
login页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登陆</title>
    <!--一般来说,不会把css样式写在这里,会单独卸载static文件夹,用css文件来存放所需的样式,flask默认从static中寻找-->
</head>
<body>
这是登陆页面
</body>
</html>
css文件:
a{
    color:red;
    background: black;
}
js文件:
alert("我是对话框")


  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在 Flask 中,`send_from_directory` 和 `send_file` 都用于向客户端文件,但有一些区别。 send_from_directory` 函数用于从指定目录中发送文件。它提供了方便的方式来发送静态文件,如图像、CSS、JavaScript 等。以下是一个示例代码: ```python from flask import Flask, send_from_directory app = Flask(__name__) @app.route('/images/<path:filename>') def get_image(filename): # 从指定目录中发送文件 return send_from_directory('static/images', filename) if __name__ == '__main__': app.run() ``` 在上面的示例中,当请求 `/images/filename.jpg` 时,`get_image` 函数会从 `static/images` 目录中发送名为 `filename.jpg` 的文件。 `send_file` 函数用于发送任意类型的文件。它可以发送动态生成的文件(如通过 Pandas 导出的 XLSX 文件),或者从任意路径中发送文件。以下是一个示例代码: ```python from flask import Flask, send_file import pandas as pd app = Flask(__name__) @app.route('/api/export') def export_data(): # 生成文件或从文件路径中获取文件 # ... # 发送文件 return send_file('path/to/file.xlsx', as_attachment=True) if __name__ == '__main__': app.run() ``` 在上面的示例中,当请求 `/api/export` 时,`export_data` 函数会发送名为 `file.xlsx` 的文件。 总结来说,`send_from_directory` 适用于发送静态文件,而 `send_file` 则适用于发送各种类型的文件,包括动态生成的文件。根据你的需求选择合适的函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值