Flask 备忘单 - 以及免费样品

2025-06-10

Flask 备忘单 - 以及免费样品

你好,程序员们,

本文只是一份Flask 速查表,旨在帮助初学者加快学习进度,并为我们的其他读者提供一些优秀的生产级示例。对于新手来说,Flask是一个用 Python 编写的轻量级 Web 应用程序框架。Flask 有时也被归类为微框架,它提供了一个轻量级的代码库,可以轻松扩展为 API、简单的 Web 应用程序或复杂的电商平台。


谢谢!内容由AppSeed - App Generator提供



1# -什么是 Flask

Flask 是一个轻量级的 WSGI Web 应用框架。它旨在让用户快速轻松地上手,并能够扩展至复杂的应用程序。Flask 被归类为微框架,旨在保持其框架核心的精简性,同时保持高度的可扩展性。


2# - 安装 Flask

$ pip install Flask
Enter fullscreen mode Exit fullscreen mode

3# - 创建隔离环境

$ python -m venv flask_env
Enter fullscreen mode Exit fullscreen mode

激活虚拟环境

$ source flask_env/bin/activate
Enter fullscreen mode Exit fullscreen mode

停用虚拟环境

$ deactivate
Enter fullscreen mode Exit fullscreen mode

4# - 一个超级简单的 Flask 应用

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return f'Hello from Flask!'
Enter fullscreen mode Exit fullscreen mode

5# - 启动应用程序

$ env FLASK_APP=hello.py flask run
 * Serving Flask app "hello"
 * Running on http://127.0.0.1:5000/
Enter fullscreen mode Exit fullscreen mode

6# - 基于对象的配置

在项目根目录中创建一个新的配置文件:

PROJECT_ROOT/app/config.py

使用 OOP 和类继承添加内容


class BaseCfg(object):
    SECRET_KEY = 'SuperS3cretKEY_1222'
    DEBUG = False
    TESTING = False

class DevelopmentCfg(BaseCfg):
    DEBUG = True
    TESTING = True

class TestingCfg(BaseCfg):
    DEBUG = False
    TESTING = True

class ProductionCfg(BaseCfg):
    SECRET_KEY = 'HvFDDcfsnd__9nbCdgsada' 
    DEBUG = False
    TESTING = False
Enter fullscreen mode Exit fullscreen mode

让我们使用配置:

更新PROJECT_ROOT/app/__init__.py以使用它:

from flask import Flask
from app import config

app = Flask(__name__)
app.config.from_object(config.DevelopmentCfg) # <--- Magic line
Enter fullscreen mode Exit fullscreen mode

7# - 使用 Jinja 渲染页面

Flask 控制器

from flask import Flask, render_template
app = Flask(__name__)

@app.route("/test")
def template_test():
    return render_template('template.html', my_string="Jinja Works!!")

if __name__ == '__main__':
    app.run(debug=True)
Enter fullscreen mode Exit fullscreen mode

HTML模板

<html>
  <head>
    <title>Flask Template Example</title>
  </head>
  <body>
    <div class="container">
      <p>Result: {{my_string}}</p>
    </div>
  </body>
</html>
Enter fullscreen mode Exit fullscreen mode

http://localhost:5000/test通过在浏览器中访问,我们应该看到:

状态:Jinja Works


8# - 使用 Flask shell

$ flask shell
Enter fullscreen mode Exit fullscreen mode

9# - 使用 SQLite 通过 SQLAlchemy 定义模型

PROJECT_ROOT/app/models.py使用以下内容创建:

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

class User(db.Model):

    id       = db.Column(db.Integer,     primary_key=True)
    user     = db.Column(db.String(64),  unique = True)
    email    = db.Column(db.String(120), unique = True)
    password = db.Column(db.String(500))

    def __init__(self, user, email, password):
        self.user       = user
        self.password   = password
        self.email      = email
Enter fullscreen mode Exit fullscreen mode

PROJECT_ROOT/app/config.py使用数据库连接字符串更新:

class BaseCfg(object):
    SECRET_KEY = 'SuperS3cretKEY_1222'
    DEBUG = False
    TESTING = False

    # This will create a file in <app> FOLDER
    SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'db.sqlite3')
    SQLALCHEMY_TRACK_MODIFICATIONS = False
Enter fullscreen mode Exit fullscreen mode

更新PROJECT_ROOT/app/__init__.py以使用模型:

from flask_sqlalchemy import SQLAlchemy
...

db = SQLAlchemy  (app) # flask-sqlalchemy
Enter fullscreen mode Exit fullscreen mode

User可以使用 Flask Shell 创建表

$ flask shell
>>> from app import db
>>> db.create_all()
Enter fullscreen mode Exit fullscreen mode

第二种方法是使用 Flask 提供的钩子在第一次请求时自动创建表。

更新PROJECT_ROOT/app/__init__.py如下:

# Setup database
@app.before_first_request
def initialize_database():
    db.create_all()
Enter fullscreen mode Exit fullscreen mode

10# - 通过 Flask shell 列出用户

$ flask shell
>>> from app.models import User
>>> User.query.all()
# HERE we should see all users 
Enter fullscreen mode Exit fullscreen mode

让我们看看这个理论如何应用于这些开源 Flask 示例:


Flask Pixel UI 套件

采用Flask框架编码的开源 Web 应用程序- 功能:

  • UI 套件:Themesberg 的 Pixel UI 套件
  • UI-Ready,Jinja2 模板
  • SQLite 数据库,Flask-SQLAlchemy ORM
  • 基于会话的身份验证流程(登录、注册)


Flask Pixel UI Kit - 开源 Flask 启动器,由 AppSeed 提供。


Flask Datta Able

Flask Dashboard由 AppSeed 平台基于 Datta Able(免费版)生成,Datta Able 是一款现代 Bootstrap 4 仪表板模板。Flask 代码库提供了身份验证、数据库、ORM 和部署脚本。


Flask Datta Able。


免伏特烧瓶

开源Flask Dashboard在 Volt Dashboard(免费版)之上使用基本模块、数据库、ORM 和部署脚本进行编码,是一种现代 Bootstrap 仪表板设计。

Volt 是一款免费开源的 Bootstrap 5 管理面板,包含 100 多个组件、11 个示例页面和 3 个自定义插件。Volt 无需 jQuery 依赖,这意味着所有库和脚本都无需 jQuery 支持。


烧瓶无伏特。


Flask 仪表盘氩气

Argon Dashboard 包含 100 多个独立组件,让您可以自由选择和组合。所有组件都可以采用不同的颜色,您可以使用 SASS 文件轻松修改。

从原型设计到功能齐全的代码,您将节省大量时间,因为所有元素都已实现。此仪表板附带预构建的示例,因此开发过程无缝衔接,从我们的页面切换到实际网站也非常容易。


Flask Argon 仪表板。


感谢阅读!更多资源请访问:


谢谢!顺便说一下,我的昵称是Sm0ke,我在Twitter上也很活跃。

鏂囩珷鏉ユ簮锛�https://dev.to/sm0ke/flask-cheat-sheet-and-free-samples-25im
PREV
Flask & Stripe - 开源迷你电商
NEXT
FastAPI - 开源入门