python flask快速搭建一個(gè)Web應(yīng)用的完整步驟
一、Flask 簡介
Flask 是一個(gè)輕量級的 Python Web 框架,旨在幫助開發(fā)者快速搭建 Web 應(yīng)用。相比于 Django 等重量級框架,F(xiàn)lask 更加簡潔和靈活,非常適合用于小型 Web 項(xiàng)目的開發(fā),甚至可以用于構(gòu)建 RESTful API。
Flask 的核心特性包括:
- 簡潔的 API:Flask 使用簡單且直觀的 API,開發(fā)者可以快速上手。
- 靈活性高:Flask 不會過多限制開發(fā)者的選擇,它給開發(fā)者提供了更多的自由度。
- 擴(kuò)展性:Flask 支持豐富的擴(kuò)展,滿足數(shù)據(jù)庫、表單驗(yàn)證、用戶認(rèn)證等多種需求。
二、Flask 安裝
要使用 Flask,首先需要安裝 Flask 庫。打開命令行,使用 pip 安裝:
pip install flask
三、創(chuàng)建一個(gè)簡單的 Flask 應(yīng)用
創(chuàng)建項(xiàng)目文件夾
假設(shè)我們要創(chuàng)建一個(gè)名為
flask_demo的項(xiàng)目,首先創(chuàng)建一個(gè)文件夾:mkdir flask_demo cd flask_demo
創(chuàng)建 Flask 應(yīng)用
在
flask_demo文件夾下,創(chuàng)建一個(gè) Python 文件app.py,并在其中編寫以下代碼:from flask import Flask # 創(chuàng)建 Flask 實(shí)例 app = Flask(__name__) # 定義路由和視圖函數(shù) @app.route('/') def hello_world(): return 'Hello, World!' # 啟動應(yīng)用 if __name__ == '__main__': app.run(debug=True)解釋:
Flask(__name__):創(chuàng)建 Flask 應(yīng)用實(shí)例,__name__參數(shù)告訴 Flask 應(yīng)用在哪個(gè)模塊中。@app.route('/'):裝飾器,表示訪問根 URL 時(shí)執(zhí)行hello_world函數(shù)。app.run(debug=True):啟動 Flask 應(yīng)用并開啟調(diào)試模式,方便開發(fā)時(shí)查看錯誤信息。
運(yùn)行應(yīng)用
在命令行中執(zhí)行以下命令啟動 Flask 應(yīng)用:
python app.py
啟動成功后,訪問瀏覽器,輸入
http://127.0.0.1:5000/,你應(yīng)該能夠看到瀏覽器顯示“Hello, World!”。
四、Flask 路由與視圖
在 Flask 中,路由是通過裝飾器 @app.route() 來定義的,它將 URL 路徑與視圖函數(shù)(即處理請求的函數(shù))進(jìn)行關(guān)聯(lián)。
例如,我們可以為不同的路徑定義不同的視圖函數(shù):
@app.route('/hello')
def hello():
return 'Hello, Flask!'
@app.route('/goodbye')
def goodbye():
return 'Goodbye, Flask!'
訪問 http://127.0.0.1:5000/hello 會返回 “Hello, Flask!”,而訪問 http://127.0.0.1:5000/goodbye 會返回 “Goodbye, Flask!”。
五、接收和處理用戶輸入
Flask 允許你通過請求對象 (request) 獲取用戶輸入數(shù)據(jù)。常見的有 GET 和 POST 請求。
處理
GET請求默認(rèn)情況下,F(xiàn)lask 使用
GET方法處理請求。當(dāng)你訪問一個(gè) URL 時(shí),瀏覽器會發(fā)出一個(gè)GET請求。你可以通過request.args獲取查詢參數(shù):from flask import request @app.route('/search') def search(): query = request.args.get('q') return f'You searched for: {query}'訪問
http://127.0.0.1:5000/search?q=Flask會返回 “You searched for: Flask”。處理
POST請求如果你需要處理表單提交的數(shù)據(jù),可以使用
POST請求。下面是一個(gè)簡單的表單提交示例:from flask import request, render_template @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] return f'Username: {username}, Password: {password}' return render_template('login.html')這個(gè)視圖函數(shù)處理
/login路由,GET請求會返回一個(gè)登錄表單,POST請求會返回提交的用戶名和密碼。
六、模板引擎 Jinja2
Flask 使用 Jinja2 作為模板引擎,用于動態(tài)渲染 HTML 頁面。在模板中,可以使用變量和控制結(jié)構(gòu)(如 if、for 等)來構(gòu)建動態(tài)內(nèi)容。
例如,創(chuàng)建一個(gè)模板 index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flask Template Example</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>
然后在視圖函數(shù)中傳遞 name 變量:
from flask import render_template
@app.route('/greet')
def greet():
return render_template('index.html', name='Flask User')
訪問 http://127.0.0.1:5000/greet,你將看到 “Hello, Flask User!”。
七、Flask 與數(shù)據(jù)庫
Flask 支持通過擴(kuò)展(如 Flask-SQLAlchemy)來與數(shù)據(jù)庫進(jìn)行交互。SQLAlchemy 是一個(gè)強(qiáng)大的 ORM(對象關(guān)系映射)工具,可以將數(shù)據(jù)庫表映射為 Python 類,并進(jìn)行操作。
安裝 Flask-SQLAlchemy:
pip install flask_sqlalchemy
然后,在 Flask 應(yīng)用中配置數(shù)據(jù)庫并使用 SQLAlchemy 進(jìn)行數(shù)據(jù)操作:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(150), unique=True, nullable=False)
@app.route('/add_user')
def add_user():
user = User(username='John Doe')
db.session.add(user)
db.session.commit()
return 'User added successfully!'
八、總結(jié)
Flask 是一個(gè)非常靈活和輕量級的 Web 框架,適合用于快速開發(fā) Web 應(yīng)用和 API。它擁有簡潔的 API,易于上手,而且可以通過豐富的擴(kuò)展來實(shí)現(xiàn)更強(qiáng)大的功能。
在這篇博客中,我們介紹了如何安裝 Flask、創(chuàng)建簡單的 Web 應(yīng)用、定義路由、處理用戶輸入、使用 Jinja2 模板引擎以及與數(shù)據(jù)庫交互。
通過掌握 Flask 的基本用法,你可以開始構(gòu)建更復(fù)雜的 Web 項(xiàng)目。
到此這篇關(guān)于python flask快速搭建一個(gè)Web應(yīng)用的文章就介紹到這了,更多相關(guān)python flask搭建Web應(yīng)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中playwright截屏API的實(shí)現(xiàn)
無論是屏幕錄制,還是屏幕截圖,Playwright都提供了簡潔的方法實(shí)現(xiàn),本文就來詳細(xì)的介紹一下python中playwright截屏API的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2026-01-01
從基礎(chǔ)到高級詳解Python如何設(shè)置Excel表格邊框樣式
在生成Excel報(bào)表時(shí),邊框樣式是提升可讀性和美觀度的關(guān)鍵,本文將通過代碼示例教你如何用Python為Excel表格添加專業(yè)邊框,快跟隨小編一起學(xué)習(xí)起來吧2026-04-04
使用python3 實(shí)現(xiàn)插入數(shù)據(jù)到mysql
今天小編就為大家分享一篇使用python3 實(shí)現(xiàn)插入數(shù)據(jù)到mysql,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Python檢查和同步本地時(shí)間(北京時(shí)間)的實(shí)現(xiàn)方法
這篇文章主要介紹了Python檢查和同步本地時(shí)間(北京時(shí)間)的實(shí)現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12
python configparser中默認(rèn)值的設(shè)定方式
這篇文章主要介紹了python configparser中默認(rèn)值的設(shè)定方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
Django ORM多對多查詢方法(自定義第三張表&ManyToManyField)
今天小編就為大家分享一篇Django ORM多對多查詢方法(自定義第三張表&ManyToManyField),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
將不規(guī)則的Python多維數(shù)組拉平到一維的方法實(shí)現(xiàn)
這篇文章主要介紹了將不規(guī)則的Python多維數(shù)組拉平到一維的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

