📅  最后修改于: 2023-12-03 14:41:13.360000             🧑  作者: Mango
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
模板文件,并且将 title
和 users
两个变量传递给该模板。
在 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,user
和 password
是连接数据库所需要的用户名和密码,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
类是一个映射到数据库中的数据表,其中 id
、username
、email
分别对应该数据表的三个字段。
我们可以通过以下代码来操作该数据表:
# 创建一条新记录
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 的环境以及相关知识点,希望对大家有所帮助。