📅  最后修改于: 2023-12-03 15:04:10.277000             🧑  作者: Mango
Flask是Python的轻量级Web框架,它具有易于使用的API、简洁而灵活的架构以及广泛的社区支持。Flask内置了对MVC框架的支持,并可轻松扩展,使其成为一款开发小型到大型应用程序的理想选择。
使用pip安装Flask:
pip install Flask
创建一个app.py
文件并添加以下代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello, World!'
if __name__ == '__main__':
app.run()
运行以下命令启动应用程序:
export FLASK_APP=app.py
flask run
浏览器中打开http://localhost:5000/,您应该能看到Hello, World!
。
在Flask中,路由与视图函数之间的关系是一一对应的。通过路由,Flask将HTTP请求转发到相应的视图函数上。以下是一个具有两个路由项的实例:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello, World!'
@app.route('/about')
def about():
return 'About Us'
if __name__ == '__main__':
app.run()
此代码通过http://localhost:5000/
和http://localhost:5000/about
可访问。
Flask内置了Jinja2模板引擎,可以轻松地生成动态HTML页面。首先,我们需要安装Jinja2:
pip install Jinja2
然后在模板中使用Jinja2,我们需要在模板目录下创建一个名为templates
的文件夹,并在其中添加一个名为template.html
的文件,其中包含以下代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>{{ title }}</title>
</head>
<body>
<h1>{{ title }}</h1>
<p>{{ content }}</p>
</body>
</html>
然后,在视图函数中使用Jinja2来呈现模板,如下所示:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('template.html', title='Home Page', content='Welcome to my Flask app!')
if __name__ == '__main__':
app.run()
模板将呈现为“Home Page”和“Welcome to my Flask app!”。
Flask使用ORM(对象关系映射)库来访问数据库,其中最流行的库是SQLAlchemy。以下是如何使用SQLite数据库的示例:
首先,我们需要安装SQLAlchemy:
pip install SQLAlchemy
然后,在应用程序中添加以下代码来初始化数据库和表:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///mydatabase.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)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return '<User %r>' % self.username
if __name__ == '__main__':
app.run()
运行以下命令以创建数据库:
flask db init
flask db migrate
flask db upgrade
这将使用SQLite创建一个名为mydatabase.db的数据库,并添加一个名为“user”的表。然后,您可以使用以下代码来添加用户:
from app import db, User
# 添加一个用户
new_user = User(username='johndoe', email='johndoe@example.com')
db.session.add(new_user)
db.session.commit()
注意,在这个例子中我们使用了类名字来访问数据库,这说明我们在程序中引用了该模块。所有的实体(模型)都需要继承自 `db.Model。
本文介绍了Flask的基本知识,包括安装和配置、路由和视图、模板和数据库。Flask具有易于上手的API和灵活的架构,适合从小型到大型的应用程序。