账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Falsk当前路径的诡异问题
    33
    0

    问题描述

    我随便写个项目测试
    F:/gggggg/index.py

    代码再简单不过了,就是输出当前工作路径

    from flask import Flask
    app = Flask(__name__)
    import os
    @app.route('/')
    def xxxx():

    print(os.path.abspath('.'))
    return 'Hello World!'
    

    if name == '__main__':

    app.run(port=8000, debug=True)
    
    

    启动后访问
    http://127.0.0.1:8000/

    控制台输出的是 D:/PyCharm 5.0.3/jre/jre/bin

    然后我把index.py改成了11.py,再次执行
    没想到这次控制台输出的是 F:/gggggg !!!???

    怎么解释这个现象呢??!!!!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在 Flask 中,你可能会遇到“当前路径”(current working directory,CWD)的诡异问题,这主要是因为 Flask 服务启动时的工作目录可能并不是你期望的目录。通常,Flask 会以其被调用的脚本所在目录作为工作目录。 例如,如果你在项目的根目录下启动 Flask 服务,而你的静态文件或模板位于子目录中,你需要使用相对路径或者绝对路径来正确访问它们,而不是直接使用文件名。 为了解决这个问题,你可以: 1. 在启动 Flask 应用时明确指定应用所在的目录,如 `app.run()` 前设置环境变量 `os.chdir('your_directory')` 来改变工作目录。 2. 使用 Flask 的 `basedir` 设置,定义一个全局变量指向你的项目根目录,然后在读取静态文件或模板时都基于这个 `basedir`。 ```python import os from flask import Flask BASE_DIR = os.path.abspath(os.path.dirname(__file__)) app = Flask(__name__) @app.route('/') def index(): # 使用 basedir 访问静态文件或模板 return render_template(BASE_DIR + '/templates/index.html') ``` 3. 对于静态文件,可以使用 Flask 的 `static_file_path` 配置,将静态文件的根目录设置为你想要的位置。 ```python app = Flask(__name__, static_folder='your_static_folder_path') ``` 理解并正确处理这些路径问题对于编写和部署 Flask 应用是非常关键的。
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部