📜  Python | 使用Flask进行Web开发简介(1)

📅  最后修改于: 2023-12-03 15:04:10.277000             🧑  作者: Mango

Python | 使用Flask进行Web开发简介

简介

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和灵活的架构,适合从小型到大型的应用程序。

参考链接