美文网首页
Flask02.Flask对象初始化参数

Flask02.Flask对象初始化参数

作者: 意爹闯天涯 | 来源:发表于2019-09-29 16:07 被阅读0次

    Flask初始化对象时除了可以传入模块名,还可以传入以下参数:

    • 静态目录Url路径static_url_path
    • 静态目录名称static_folder
    • 模板路径名称template_folder

    静态目录是Flask服务器提供给用户可直接访问的目录,一般存放静态资源,如html、css、js、图片等。
    默认情况下静态目录的名称为static,只有flask服务器对应的静态目录中存放的静态资源才能供用户直接通过URL访问。为了说明这个规则,我们举例来说明以下。
    项目下创建static目录及static2目录,static目录放置静态网页1.html,'static2'目录防止静态网页2.html。

    项目目录
    1.html:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>静态页面1</title>
    </head>
    <body>
    第一个静态页面。
    </body>
    </html>
    

    2.html:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>静态页面2</title>
    </head>
    <body>
    第二个静态页面
    </body>
    </html>
    

    index.py:

    from flask import Flask
    
    app = Flask(__name__)
    
    
    @app.route('/')
    def index():
        return "hello flask"
    
    
    if __name__ == '__main__':
        app.run()
    

    index.py执行后,开启服务器被开启并输出:

    D:\Code\Python\easyflask\venv\Scripts\python.exe D:/Code/Python/easyflask/index.py
     * Serving Flask app "index" (lazy loading)
     * Environment: production
       WARNING: This is a development server. Do not use it in a production deployment.
       Use a production WSGI server instead.
     * Debug mode: off
     * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
    

    开启服务器后,通过访问http://127.0.0.1:5000/static/1.html,可以看到static目录下的1.html能够正常访问。

    1.html
    访问http://127.0.0.1:5000/static2/2.html,出现404页面:
    image.png
    由此可以发现,只有服务器默认的静态目录下的静态文件才能够直接通过URL访问。
    可以在初始化Flask对象时通过指定static_folder参数来改变默认的静态目录的名字,修改index.py:
    from flask import Flask
    
    app = Flask(__name__, static_folder="static2")
    
    
    @app.route('/')
    def index():
        return "hello flask"
    
    
    if __name__ == '__main__':
        app.run()
    

    代码中,将默认的静态文件目录修改为了static2,再次访问http://127.0.0.1:5000/static2/2.html,可以看到static2中的静态文件能够正常解析了。

    2.html
    如果不希望用户根据URL中的路径很轻易猜出静态目录的真实名称,可以通过static_url_path参数来为这个静态目录指定URL路径:
    from flask import Flask
    
    app = Flask(__name__, static_folder="static2", static_url_path='/hahah/wawawa')
    
    
    @app.route('/')
    def index():
        return "hello flask"
    
    
    if __name__ == '__main__':
        app.run()
    

    这里将项目根目录下的静态资源目录static2指定为URL路径为/hahah/wawawa,这是可通过http://127.0.0.1:5000/hahah/wawawa/2.html来访问2.html静态文件:

    2.html
    template_folder用于指定模板目录,用法和原理与static_folder参数相似,这里就不再赘述。

    相关文章

      网友评论

          本文标题:Flask02.Flask对象初始化参数

          本文链接:https://www.haomeiwen.com/subject/hsiayctx.html