1. 程式人生 > >Flask 系列之 HelloWorld

Flask 系列之 HelloWorld

pts htm doc 激活 strong __main__ shell 代碼 程序

技術分享圖片

說明

  • 操作系統:Windows 10
  • Python 版本:3.7x
  • 虛擬環境管理器:virtualenv
  • 代碼編輯器:VS Code

環境搭建

打開 cmd 執行下述操作

# 創建項目文件
mkdir todolist

cd todolist

# 創建代碼文件夾
mkdir app

# 創建虛擬環境
python -m virtualenv venv

# 激活虛擬環境
venv\Scripts\activate

# 安裝 flask
pip insatll flask

# 啟動 VS Code 編輯器
code .

Hello World

todolist\app 目錄下創建一個 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

todolist\app\templates 目錄下創建一個 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>

修改 todolist\app\__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/" 即可看到相應效果。

使用模板繼承優化代碼

todolist\app\templates 目錄下創建一個 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>

修改 todolist\app\templates\index.html 頁面,示例代碼如下所示:

{% extends 'base.html' %}

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

嘗試打開瀏覽器訪問 "http://127.0.0.1:5000/" 即可看到相應效果。

頁面傳值

修改 todolist\app\__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)

修改 todolist\app\templates\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">
    {% if title %}
    <title>{{title}}'s Todo List</title>
    {% else %}
    <title>Todo List</title>
    {% endif %}
</head>

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

</html>

修改 todolist\app\templates\index.html 頁面,示例代碼如下所示

{% extends 'base.html' %}

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

嘗試打開瀏覽器訪問 "http://127.0.0.1:5000/" 即可看到相應效果。

註意事項

若在 VS Code 的虛擬環境下安裝依賴包失敗的的話,嘗試以管理員方式打開 powershell 執行 Set-ExecutionPolicy RemoteSigned 即可

Flask 系列之 HelloWorld