Flask 系列之 HelloWorld

来源:https://www.cnblogs.com/hippieZhou/archive/2019/03/24/10273258.html
-Advertisement-
Play Games

說明 操作系統: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 即可


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 讀了一本還不錯的書「編寫高質量代碼改善 Python 程式的 91 個建議」,大多數的建議是真心不錯,我雖然寫python也有3年多了,但是有些地方確實沒去註意過,特地整理了一下,給大家參考。 我已經打包好了一份電子書,有興趣的可以關註公眾號:**Python專欄**。後臺回覆:**91個建議**... ...
  • 原文鏈接:Learn C++ Multi-Threading in 5 Minutes C++14的新的多線程架構非常簡單易學,如果你對C或者C++很熟悉,那麼本文非常適合你。作者用C++14作為基準參考,但是所介紹的東西在C++17中也依然適用。本文只介紹基本的架構,在讀完本文後你應該也可以自己編 ...
  • 前提介紹: 本人是一名大三學生,主要使用C++開發,興趣是高性能的伺服器方面。 網路開發離不開網路庫,所以今天開始學一個新的網路庫,陳老師的muduo庫 我參考的書籍就是陳老師自己關於muduo而編著這本《linux多線程伺服器編程》 為什麼選擇muduo網路庫: 我當初選擇muduo網路庫有三個方 ...
  • 簡潔的web框架Bottle 簡介 Bottle是一個非常簡潔,輕量web框架,與django形成鮮明的對比,它只由一個單文件組成,文件總共只有3700多行代碼,依賴只有python標準庫。但是麻雀雖小五臟俱全,基本的功能都有實現,很適合做一些小的web應用 開始使用 首先使用pip install ...
  • 超級開心啊!!!!!!!!!!!!! win10 打開cmd Installing with get-pip.py To install pip, securely download get-pip.py. [1]: curl https://bootstrap.pypa.io/get-pip.py ...
  • 一,File類:文件的創建和刪除 1.File(String pathname):pathname是指路徑名稱。用法 File file = new File("d:/1.txt "); 2.File(String parent, String child):parent是父路徑字元串,child是 ...
  • 許多公司網站被黑被進犯,首要牽扯到的便是網站的開發言語,包含了代碼言語,以及資料庫言語,現在大多數網站都是運用的PHP,JAVA,.net言語開發,資料庫運用的是mysql,oracle等資料庫,那麼網站被進犯了該怎樣辦?運營一個網站,總被進犯是時有發生的,特別一些公司網站,以及個人建站,都是沒有專 ...
  • 新聞 "Amazon.Lambda.RuntimeSupport發佈" "Forge 3.0架構" "Blazor 0.9.0試驗版發佈" "通過微軟游戲棧實現更多應用" "介紹ASP.NET Core中的gRPC" "Mac上的Visual Studio 2019 8.0版本預覽4" "FlexS ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...