安装 Flask:
pip install Flask
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
在这个例子中:
Flask
类。@app.route
装饰器定义路由。当用户访问根 URL /
时,hello_world
函数会被调用。debug=True
表示开启调试模式。你需要在调用 app.run()
时指定 host
和 port
参数。例如,如果你想让你的 Flask 应用运行在 192.168.100.200
地址的 6000
端口上,你可以这样设置:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(host='192.168.100.200', port=6000)
在这个例子中:
app.run(host='192.168.100.200', port=6000)
告诉 Flask 应用在 IP 地址 192.168.100.200
的 6000
端口上监听请求。http://192.168.100.200:6000/
访问。注意事项
网络配置:确保 192.168.100.200
是服务器的 IP 地址,并且服务器的 6000
端口没有被其他服务占用。
防火墙设置:如果有防火墙,确保 6000
端口是开放的,以便外部请求可以到达 Flask 应用。
调试模式:在生产环境中运行 Flask 时,应关闭调试模式。在上面的例子中,你可以去掉 debug=True
或将其设置为 False
。
生产部署:Flask 自带的服务器主要用于开发和测试。在生产环境中,建议使用更健壮的 WSGI 服务器,如 Gunicorn 或 uWSGI。
安全性:如果你的应用是面向公网的,确保考虑安全性,比如使用 HTTPS、安全的编码实践、数据验证等。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return "Hello, Flask!"
from flask import Flask
:从 flask
模块导入 Flask
类。app = Flask(__name__)
:创建一个 Flask
应用实例。__name__
是当前模块的名称,Flask 用它来确定程序的根目录,以便稍后能找到相对于程序根目录的资源文件位置。@app.route('/')
:一个装饰器,定义了路由规则。这里 '/'
表示应用的根 URL。def home()
:定义一个视图函数,它与上面定义的路由相关联。return "Hello, Flask!"
:这个视图函数返回的字符串将会被显示在客户端(例如浏览器)。@app.route('/user/' )
def show_user_profile(username):
return f"User: {username}"
'user/'
:定义一个动态路由,
是一个变量部分,可以接收来自 URL 的任意文本。def show_user_profile(username):
:定义的视图函数接收 username
作为参数。from flask import request
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
return f"Logging in {username} with password {password}"
else:
return "Login Page"
request
对象,用于访问请求数据。from flask import render_template
@app.route('/hello/' )
def hello(name=None):
return render_template('hello.html', name=name)
render_template
函数,用于渲染模板。name
参数。render_template
渲染一个名为 hello.html
的模板文件,并传递 name
变量。from flask import redirect, url_for, abort
@app.route('/redirect')
def go_home():
return redirect(url_for('home'))
@app.errorhandler(404)
def page_not_found(error):
return "This page does not exist", 404
redirect
和 url_for
函数用于重定向,abort
用于错误处理。redirect
函数重定向到 home
视图函数对应的 URL。errorhandler
装饰器来自定义错误处理。这里定义了一个自定义的 404 错误处理视图。HTML 示例(不是 Python 代码):
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
url_for
函数生成静态文件的 URL。这里假设有一个名为 style.css
的 CSS 文件在 Flask 应用的 static
目录下。from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
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)
SQLAlchemy
对象。User
,映射到数据库表。from flask import Blueprint
mod = Blueprint('auth', __name__, url_prefix='/auth')
@mod.route('/login')
def login():
return "Login Page"
Blueprint
类,用于创建蓝图。auth
的 Blueprint 对象,所有路由都将以 /auth
作为前缀。/auth/login
。虽然 Flask 自带的服务器方便开发测试,但不建议在生产环境中使用。在生产环境中,应该将 Flask 应用部署在一个更加健壮的 Web 服务器上,如 Gunicorn 或 uWSGI。
Flask 社区提供了大量扩展来增加额外的功能,如:
Flask 的简洁和灵活性使其成为 Python Web 开发的流行选择,特别是对于小型项目或作为微服务架构中的一个组成部分。