美文网首页
Discover Flask, Part 1 – Setting

Discover Flask, Part 1 – Setting

作者: c8ac4dad76db | 来源:发表于2018-07-29 20:08 被阅读17次

    Series Overview

    浏览 discoverflask.com ,可以看到本系列的视频、博客以及源代码。

    Flask 是一个强大的 Web 微框架。它的 API 相当小,所以也很容易学习和使用。但是别被它愚弄了,它其实对大流量的企业级应用有强大的支持。

    您可以从完全包含在一个文件中的应用程序开始,然后在网站变得越来越复杂的情况下,以结构良好的方式慢慢扩展到多个文件和文件夹。

    Setup

    Environment

    $ python --version
    Python 3.6.6
    
    mkdir discover-flask-project
    cd discover-flask-project
    
    virtualenv .venv
    source .venv/bin/activate
    pip install flask
    

    Version Control

    我们添加版本控制,从 gitignore 上复制 Python.gitignore 到项目中,并改名:

    mv Python.gitignore .gitignore
    
    git init
    git add .
    git commit -a -v
    

    Structure

    ├── app.py
    ├── static
    └── templates
    

    Routes

    app.py

    from flask import Flask, render_template
    
    app = Flask(__name__)
    
    
    @app.route('/')
    def home():
        return "Hello world"
    
    
    @app.route('/welcome')
    def welcome():
        return render_template('welcome.html')
    
    
    if __name__ == '__main__':
        app.run(debug=True)
    

    这非常简单。

    导入Flask类后,我们创建(或实例化)应用程序对象,定义视图以响应请求,然后启动服务器。

    route 装饰被用来关联(或地图)的URL的功能。URL /home()函数关联,因此当最终用户请求该URL时,视图将以字符串响应。同样,当/welcome请求URL 时,视图将呈现 welcome.html 模板。

    简而言之,实例化主应用程序对象,然后将其用于将URL映射到函数。

    有关更详细的说明,请阅读Flask的快速入门教程

    Test

    是时候进行健全检查了。启动开发服务器:

    (.venv) $ python app.py
    

    导航到 http://localhost:5000/ 的时候很正常,但是导航到 http://localhost:5000/welcome 就会看到一个报错 jinja2.exceptions.TemplateNotFound,这是由于我们没有设置 welcome.html 模板。让我们先在终端终止掉服务(Ctrl + C)。

    Templates

    templates/welcome.html

    <!DOCTYPE html>
    <html lang="en" dir="ltr">
      <head>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Flask Intro</title>
      </head>
      <body>
        <div class="container">
            <h1>Welcome to Flask</h1>
            <p>Click <a href="/">here</a> to go home.</p>
        </div>
      </body>
    </html>
    

    保存后重新运行 python app.py , 现在可以支持打开 /welcome 路由了,但是界面不是很好看,让我们来完善一下。

    Bootstrap

    templates/welcome.html

    <!DOCTYPE html>
    <html lang="en" dir="ltr">
      <head>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet"
            href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
            integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO"
            crossorigin="anonymous">
        <title>Flask Intro</title>
      </head>
      <body>
        <div class="container">
            <h1>Welcome to Flask</h1>
            <p>Click <a href="/">here</a> to go home.</p>
        </div>
      </body>
    </html>
    

    还记得我们让服务器运行了吗?好吧,当Flask处于调试模式app.run(debug=True),有一个自动重载机制可以启动代码更改。因此,我们可以在浏览器中按刷新,我们应该看到新模板正好盯着我们。

    Source Code

    Github

    相关文章

      网友评论

          本文标题:Discover Flask, Part 1 – Setting

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