当前位置: 首页 > article >正文

Python实战:Flask轻量级web框架入门

Flask是一个轻量级的Web框架,它是由Armin Ronacher开发的,使用Python语言编写。Flask易于上手,具有高度的可扩展性,非常适合快速开发Web应用程序。

一.Flask简介

Flask是一个基于Werkzeug WSGI工具箱和Jinja2模板引擎的Web框架。与Django等其他Web框架相比,Flask更加轻量级,它没有内置的ORM、表单验证等功能,而是通过扩展来实现这些功能。这使得Flask更加灵活,可以根据项目的需求选择合适的扩展。

二.Flask安装

在开始使用Flask之前,需要确保已经安装了Python。Flask可以通过pip命令进行安装:

pip install Flask

三. Flask基础

1.Hello, World!

创建一个Flask应用程序非常简单。首先,创建一个名为app.py的文件,并输入以下代码:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
    return 'Hello, World!'
if __name__ == '__main__':
    app.run()

这段代码创建了一个简单的Flask应用程序,当访问根URL(/)时,它会返回"Hello, World!"。

2.路由和视图函数

在Flask中,路由用于将URL映射到视图函数。在上面的示例中,@app.route('/')定义了一个路由,当用户访问根URL时,会调用hello_world视图函数。
Flask还支持动态路由,可以通过在路由中使用变量来捕获URL的一部分。例如,可以将用户ID作为URL的一部分:

@app.route('/user/<int:user_id>')
def show_user(user_id):
    return f'User ID: {user_id}'

在这个示例中,<int:user_id>定义了一个整数类型的变量,它将匹配URL中的整数部分,并将其作为参数传递给show_user视图函数。

3.模板引擎

Flask使用Jinja2作为模板引擎,可以动态生成HTML内容。首先,在项目目录中创建一个名为templates的文件夹,并在其中创建一个名为index.html的HTML文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Flask Template</title>
</head>
<body>
    <h1>Hello, {{ name }}!</h1>
</body>
</html>

接下来,在app.py中修改hello_world视图函数,使用render_template函数渲染模板:

from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def hello_world():
    return render_template('index.html', name='World')
if __name__ == '__main__':
    app.run()

在这个示例中,render_template函数接受模板文件名和要传递给模板的参数。在模板文件中,使用{{ name }}语法来插入变量。

四.Flask扩展

Flask的强大之处在于其丰富的扩展。以下是一些常用的Flask扩展:

1.Flask-Script

Flask-Script为Flask应用程序提供了命令行接口。安装Flask-Script:

pip install Flask-Script

app.py中,使用Manager类创建一个命令行接口:

from flask_script import Manager
app = Flask(__name__)
manager = Manager(app)
@app.route('/')
def hello_world():
    return 'Hello, World!'
if __name__ == '__main__':
    manager.run()

现在,可以通过命令行运行应用程序:

python app.py runserver

2.Flask-Migrate

Flask-Migrate是一个用于数据库迁移的Flask扩展,它基于Alembic。安装Flask-Migrate:

pip install Flask-Migrate

app.py中,首先需要初始化数据库迁移:

from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
db = SQLAlchemy(app)
migrate = Migrate(app, db)
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), unique=True)
if __name__ == '__main__':
    manager.run()

现在,可以使用命令行创建数据库表:

python app.py db init
python app.py db migrate -m "Initial migration."
python app.py db upgrade

3.Flask-RESTful

Flask-RESTful是一个用于构建RESTful API的Flask扩展。安装Flask-RESTful:

pip install Flask-RESTful

app.py中,使用Api类创建一个RESTful API:

from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app)
class UserResource(Resource):
    def get(self, user_id):
        user = User.query.get_or_404(user_id)
        return {'username': user.username}
api.add_resource(UserResource, '/user/<int:user_id>')
if __name__ == '__main__':
    app.run()

在这个示例中,我们创建了一个UserResource类,它继承自Resource类。get方法用于处理GET请求,并返回用户名。add_resource方法将UserResource类注册为API资源。

五.结论

Flask是一个轻量级、灵活的Web框架,非常适合快速开发Web应用程序。通过本文的介绍,我们了解了Flask的基础知识,包括路由、视图函数、模板引擎和扩展。通过实际的项目经验,我们可以更好地掌握Flask,并利用其丰富的扩展来构建功能强大的Web应用程序。


http://www.kler.cn/a/272636.html

相关文章:

  • Python Pyside6 加Sqlite3 写一个 通用 进销存 系统 初型
  • 某国际大型超市电商销售数据分析和可视化
  • pandoc + wkhtmltox 批量转换Markdown文件为PDF文件
  • 服务器迁移MySQL
  • 计算机网络-物理层
  • 算法(蓝桥杯)贪心算法7——过河的最短时间问题解析
  • B007-springcloud alibaba 消息驱动 Rocketmq
  • 数据结构的美之链表和树
  • 浅谈嵌入式软件测试秘诀
  • 使用tui-image-editor 图片编辑 标注图片
  • 把软件加入开机自启动
  • 鸿蒙Socket通信示例(TCP通信)
  • 柔若初春,留心新生儿嘴唇发白
  • 【每日算法】理论:常见AIGC模型; 刷题:力扣单调栈
  • 红帽rhce认证报名费用多少?rhcsa 红帽认证含金量高吗?
  • 亮点抢先看!4月16-17日,百度Create大会开设“AI公开课”,大咖带你打造赚钱工具
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:TextPicker)
  • OSPF协议全面学习笔记
  • 【ArcGIS 脚本工具】强制移动要素类,绕过空间参考不一致
  • JVM 相关知识点记录
  • Vue动态绑定Class与Style
  • Docker Mysql无root账户创建最高权限用户
  • opencv中的图像均值模糊—blur
  • 华为PixArt-α:高质量、低成本的文生图模型,训练时长只有SD 1.5的10.8%
  • 隐私和安全是首要考虑?Zoho ToDo的任务管理工具适合您
  • Nginx的日志怎么看,在哪看,access.log日志内容详解