📜  黄貂鱼 - Python (1)

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

黄貂鱼 - Python

黄貂鱼是一款基于 Python 的轻量级 Web 框架,由 Python 开发者 Armin Ronacher 创造。它的目标是使 web 开发变得快速和简单,同时保持灵活性和可扩展性。

特点
  • 简单易用的路由系统
  • 自带简单的模板引擎
  • 基于 Werkzeug WSGI 工具箱实现
  • 支持 SQLite、MySQL、PostgreSQL 等多种数据库
  • 使用 Jinja2 模板引擎支持生成复杂的 HTML 页面
  • 支持多种格式的请求数据(如 JSON、XML 等)
  • 支持文件上传
  • 支持 cookie、session 等机制
安装

可以通过 pip 来安装黄貂鱼:

pip install flask
快速开始

下面是一个简单的示例代码:

from flask import Flask

app = Flask(__name__)

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

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

运行该脚本后,在 web 浏览器中输入 http://localhost:5000,即可看到 'Hello, World!' 的欢迎信息。

路由系统

黄貂鱼使用一种类似于 Django 的路由系统,可以通过使用 python 的装饰器来实现。

@app.route('/hello')
def hello():
    return 'Hello, Flask!'

上面的代码定义了一个路由,当访问 http://localhost:5000/hello 时,将调用 hello 函数并返回 'Hello, Flask!' 字符串。

模板引擎

黄貂鱼自带一个简单的模板引擎,并使用 Jinja2 作为默认模板引擎,可以通过 render_template 函数来渲染模板,并传递变量。

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html', name='Flask')

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

上面的代码中,index 函数将会返回渲染后的 index.html 模板,其中 name 变量值为 'Flask'。

数据库支持

黄貂鱼可以使用多种数据库,例如 SQLite、MySQL、PostgreSQL 等,并使用 SQLAlchemy 作为 ORM 框架。下面是一个使用 SQLite 数据库的示例:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.sqlite'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), unique=True)

    def __repr__(self):
        return '<User %r>' % self.name

@app.route('/')
def index():
    user = User(name='Flask')
    db.session.add(user)
    db.session.commit()
    users = User.query.all()
    return str(users)

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

上面的代码中,定义了一个 User 模型,然后使用 SQLAlchemy 提供的 API 进行添加和查询等操作。

总结

黄貂鱼是一个非常简单、易于使用的 Python Web 框架,它的学习曲线很低,适合初学者或者快速开发小型项目。同时,它也提供了足够的灵活性和可扩展性,可以用于开发大型应用程序。