Discover Flask, Part 1 – Setting

2018-07-29  本文已影响17人  c8ac4dad76db

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

上一篇 下一篇

猜你喜欢

热点阅读