📜  Flask - 环境 (1)

📅  最后修改于: 2023-12-03 14:41:13.360000             🧑  作者: Mango

Flask - 环境

Flask 是一个轻量级的 Web 应用程序框架,它使用 Python 编程语言编写。Flask 仅仅依赖于 Jinja2 模板引擎和 Werkzeug WSGI 工具库。

Flask 的优点是开发效率高,灵活性高,易于扩展,适合小型应用程序。本文将介绍 Flask 的环境以及相关的知识点。

环境

在 Flask 中,我们可以通过 flask 包来获取 Flask 的环境,例如:

from flask import Flask

app = Flask(__name__)

这里的 Flask(__name__) 表示 Flask 应用程序的名称是 __main__ ,即当前文件。

同时,我们也可以通过 Flask 的环境来设置一些配置:

app.config['DEBUG'] = True
app.config['SECRET_KEY'] = 'secret_key'

这里的 DEBUG 表示是否开启调试模式,SECRET_KEY 表示 Flask 应用程序的密钥,用于确保安全性。

启动

当我们完成 Flask 应用程序的编写后,我们需要通过 Flask.run() 方法来启动 Flask 应用程序:

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

这里的 __name__ 是 Python 内置变量,当该脚本被作为主程序运行时,其值为 __main__

在开发模式下,我们可以通过 debug 参数来开启调试模式,例如:

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

在 Flask 中,我们可以通过路由来控制 URL 的访问,并返回对应的响应结果。例如:

@app.route('/')
def index():
    return 'Hello, World!'

这里的 @app.route('/') 表示这个视图函数控制所有的以 / 结尾的请求,当用户访问当前应用程序的根目录时,会触发 index() 函数并返回 Hello, World!

同时,我们也可以通过参数来获取 URL 中的数据:

@app.route('/user/<username>')
def profile(username):
    return f'User {username}'

这里的 <username> 表示该 URL 匹配一个动态的用户名称,并把它作为参数传递给 profile() 函数。

模板

在 Flask 中,我们可以使用 Jinja2 来生成 HTML 页面,Jinja2 是一个现代的 Web 模板引擎,可以使用各种控制结构来进行条件渲染、循环等操作。

<!doctype html>
<html>
  <head>
    <title>{{ title }}</title>
  </head>
  <body>
    <h1>Welcome to {{ title }}</h1>
    <ul>
      {% for user in users %}
        <li>{{ user }}</li>
      {% endfor %}
    </ul>
  </body>
</html>

在 Flask 中,我们可以通过以下代码来渲染这个模板:

from flask import render_template

@app.route('/')
def index():
    users = ['Alice', 'Bob', 'Charlie']
    return render_template('index.html', title='Flask', users=users)

这里的 render_template() 方法表示使用模板引擎来渲染 index.html 模板文件,并且将 titleusers 两个变量传递给该模板。

数据库支持

在 Flask 中,我们可以使用 SQLALchemy 来支持各种类型的数据库操作,例如 MySQL、PostgreSQL 等。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://user:password@localhost/test'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

这里的 SQLALCHEMY_DATABASE_URI 表示数据库的连接 URL,userpassword 是连接数据库所需要的用户名和密码,test 是数据库名称。

同时,我们也可以通过 ORM 来操作数据库:

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __repr__(self):
        return f'<User {self.username}>'

这里的 User 类是一个映射到数据库中的数据表,其中 idusernameemail 分别对应该数据表的三个字段。

我们可以通过以下代码来操作该数据表:

# 创建一条新记录
user = User(username='alice', email='alice@example.com')
db.session.add(user)
db.session.commit()

# 查询记录
users = User.query.all()

# 更新记录
user = User.query.filter_by(username='alice').first()
user.email = 'new_email@example.com'
db.session.commit()

# 删除记录
user = User.query.filter_by(username='alice').first()
db.session.delete(user)
db.session.commit()
总结

Flask 是一个优秀的 Web 应用程序框架,具有开发效率高、灵活性高、易于扩展等优点。本文介绍了 Flask 的环境以及相关知识点,希望对大家有所帮助。