掌握Flask框架,實戰項目一步到位

提問者:用戶ANED 發布時間: 2025-06-08 04:30:01 閱讀時間: 3分鐘

最佳答案

引言

Flask是一個輕量級的Web利用框架,利用Python言語編寫,因其簡潔跟機動而廣受歡送。本文旨在經由過程一系列實戰項目,幫助讀者單方面控制Flask框架,並可能獨破開辟Web利用。

第一部分:Flask基本入門

1.1 安裝Flask

在開端之前,確保你的打算機上已安裝Python跟pip。然後,經由過程以下命令安裝Flask:

pip install flask

1.2 創建第一個Flask利用

創建一個名為 app.py 的文件,並編寫以下代碼:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, Flask!'

if __name__ == '__main__':
    app.run(debug=True)

運轉此劇本,你將看到如下輸出:

 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

拜訪 http://127.0.0.1:5000/,你將看到「Hello, Flask!」的歡送信息。

1.3 路由跟視圖函數

Flask利用裝潢器 @app.route() 來定義路由跟視圖函數。每個視圖函數擔任處理特定的URL懇求。

@app.route('/user/<username>')
def show_user_profile(username):
    # 表現用戶信息
    return f'Hello, {username}!'

1.4 模板襯著

Flask利用Jinja2作為模板引擎。創建一個名為 templates 的文件夾,並在其中創建一個名為 index.html 的文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首頁</title>
</head>
<body>
    <h1>{{ message }}</h1>
</body>
</html>

然後在視圖函數中襯著模板:

from flask import render_template

@app.route('/')
def index():
    return render_template('index.html', message='歡送離開我的網站!')

第二部分:實戰項目

2.1 博客體系

創建一個簡單的博客體系,包含文章列表、文章概略、用戶註冊跟登錄等功能。

2.1.1 材料庫計劃

利用SQLite材料庫存儲文章跟用戶信息。

from flask_sqlalchemy import SQLAlchemy

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    # ...其他欄位

class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)
    # ...其他欄位

2.1.2 用戶註冊跟登錄

實現用戶註冊跟登錄功能,利用Flask-Login擴大年夜停止用戶會話管理。

from flask_login import LoginManager, UserMixin, login_user, logout_user, login_required

login_manager = LoginManager()
login_manager.init_app(app)

class User(UserMixin, db.Model):
    # ...同上

@login_manager.user_loader
def load_user(id):
    return User.query.get(int(id))

2.2 在線商城

創建一個在線商城,包含商品列表、商品概略、購物車跟訂單管理等功能。

2.2.1 材料庫計劃

利用SQLite材料庫存儲商品、訂單跟用戶信息。

class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False)
    price = db.Column(db.Float, nullable=False)
    # ...其他欄位

class Order(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    # ...其他欄位

2.2.2 購物車跟訂單管理

實現購物車跟訂單管理功能,利用Flask-Cart擴大年夜停止購物車管理。

from flask_cart import Cart

cart = Cart(app)

第三部分:安排Flask利用

3.1 利用Gunicorn

將Flask利用安排到出產情況,可能利用Gunicorn作為WSGI伺服器。

gunicorn -w 4 -b 0.0.0.0:8000 app:app

3.2 利用Nginx

利用Nginx作為反向代辦,將懇求轉發到Gunicorn。

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://localhost:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

總結

經由過程以上實戰項目,你將可能單方面控制Flask框架,並可能獨破開辟Web利用。祝你進修高興!

相關推薦