說明 操作系統:Windows 10 Python 版本:3.7x 虛擬環境管理器:virtualenv 代碼編輯器:VS Code 環境搭建 打開 執行下述操作 Hello World 在 目錄下創建一個 __init__.py ,示例代碼如下所示: 在 目錄下創建一個 manage.py 文件, ...
說明
- 操作系統:Windows 10
- Python 版本:3.7x
- 虛擬環境管理器:virtualenv
- 代碼編輯器:VS Code
實驗目標
創建一個顯示 Hello World 頁面的網站。
環境搭建
打開 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
即可