Flask是一個(gè)輕量級(jí)的Python Web框架,非常適合初學(xué)者和小型項(xiàng)目。以下是一個(gè)學(xué)習(xí)指南,幫助你從基礎(chǔ)開始,逐步掌握Flask。
首先,確保你已經(jīng)安裝了Python和pip。然后,你可以通過(guò)以下命令安裝Flask:
pip install Flask
創(chuàng)建一個(gè)名為 app.py
的文件,并添加以下內(nèi)容:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
運(yùn)行這個(gè)應(yīng)用:
python app.py
訪問(wèn) http://127.0.0.1:5000/
,你應(yīng)該會(huì)看到 “Hello, World!”。
Flask使用裝飾器來(lái)定義路由。以下是一些示例:
@app.route('/')
def home():
return 'Home Page'
@app.route('/about')
def about():
return 'About Page'
@app.route('/user/<username>')
def show_user_profile(username):
return f'User {username}'
Flask使用Jinja2作為模板引擎。創(chuàng)建一個(gè)名為 templates
的文件夾,并在其中創(chuàng)建一個(gè) index.html
文件:
<!doctype html>
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
<h1>{{ message }}</h1>
</body>
</html>
在 app.py
中使用模板:
from flask import render_template
@app.route('/')
def home():
return render_template('index.html', title='Home', message='Hello, World!')
Flask提供了簡(jiǎn)單的表單處理功能。以下是一個(gè)示例:
from flask import request
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
return f'Username: {username}'
return '''<form method="post">Username: <input type="text" name="username"><br>Password: <input type="password" name="password"><br><input type="submit" value="Login"></form>'''
Flask-SQLAlchemy是一個(gè)流行的擴(kuò)展,用于在Flask中使用SQL數(shù)據(jù)庫(kù)。安裝Flask-SQLAlchemy:
pip install Flask-SQLAlchemy
在 app.py
中配置數(shù)據(jù)庫(kù)并定義模型:
from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
Flask可以通過(guò)uWSGI或Gunicorn部署到生產(chǎn)環(huán)境。
以上步驟將幫助你開始學(xué)習(xí)Flask框架,并通過(guò)實(shí)踐加深理解。記得動(dòng)手敲代碼,有問(wèn)題隨時(shí)在評(píng)論區(qū)問(wèn)。祝你學(xué)習(xí)愉快!