Flask 系列之 HelloWorld

说明

  • 操作系统:Windows 10
  • Python 版本:3.7x
  • 虚拟环境管理器:virtualenv
  • 代码编辑器:VS Code

实验目标

创建一个显示 Hello World 页面的网站。

环境搭建

打开 cmd 执行下述操作

# 创建项目文件
mkdir todolist

cd todolist

# 创建代码文件夹
mkdir app

# 创建虚拟环境
python -m virtualenv venv

# 激活虚拟环境
venvScriptsactivate

# 安装 flask
pip insatll flask

# 启动 VS Code 编辑器
code .

Hello World

todolistapp 目录下创建一个 init.py ,示例代码如下所示:

from flask import Flask

app = Flask(__name__)


@app.route('/')
@app.route('/index')
def index():
    return '<h1>Hello World</h1>'

todolist 目录下创建一个 manage.py 文件,示例代码如下所示:

from app import app

if __name__ == "__main__":
    app.run(debug=True, host='0.0.0.0', host=5000)

在 VS Code 的 Terminal 窗口执行 python manage.py 操作,在在本地启动一个开发服务器,运行起我们的程序,等程序成功启动起来后,尝试打开浏览器访问 "http://127.0.0.1:5000/" 即可看到页面显示一个 Hello World

使用 render_template

todolistapp emplates 目录下创建一个 index.html 页面,示例代码如下所示:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Index</title>
</head>

<body>
    <h1>Hello World</h1>
</body>

</html>

修改 todolistapp\__init__.py 文件,示例代码如下所示:

from flask import Flask, render_template

app = Flask(__name__)


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

尝试打开浏览器访问 "http://127.0.0.1:5000/" 即可看到相应效果。

使用模板继承优化代码

todolistapp emplates 目录下创建一个 base.html 页面,示例代码如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Index</title>
</head>
<body>
    {% block content %}{% endblock %}
</body>
</html>

修改 todolistapp emplatesindex.html 页面,示例代码如下所示:

{% extends 'base.html' %}

{% block content %}
<h1>Hello World</h1>
{% endblock %}

尝试打开浏览器访问 "http://127.0.0.1:5000/" 即可看到相应效果。

页面传值

修改 todolistapp\__init__.py ,示例代码如下所示

from flask import Flask, render_template

app = Flask(__name__)


@app.route('/')
@app.route('/index')
def index():
    title = 'Home'
    greet = 'Hello World'
    return render_template('index.html', title=title, greet=greet)

修改 todolistapp emplatesase.html 页面,示例代码如下所示:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    {% if title %}
    <title>{{title}}'s Todo List</title>
    {% else %}
    <title>Todo List</title>
    {% endif %}
</head>

<body>
    {% block content %}{% endblock %}
</body>

</html>

修改 todolistapp emplatesindex.html 页面,示例代码如下所示

{% extends 'base.html' %}

{% block content %}
<h1>{{greet}}</h1>
{% endblock %}

尝试打开浏览器访问 "http://127.0.0.1:5000/" 即可看到相应效果。

注意事项

若在 VS Code 的虚拟环境下安装依赖包失败的的话,尝试以管理员方式打开 powershell 执行 Set-ExecutionPolicy RemoteSigned 即可

原文地址:https://www.cnblogs.com/hippieZhou/p/10273258.html