Flask 备忘单 - 以及免费样品
你好,程序员们,
本文只是一份Flask 速查表,旨在帮助初学者加快学习进度,并为我们的其他读者提供一些优秀的生产级示例。对于新手来说,Flask是一个用 Python 编写的轻量级 Web 应用程序框架。Flask 有时也被归类为微框架,它提供了一个轻量级的代码库,可以轻松扩展为 API、简单的 Web 应用程序或复杂的电商平台。
谢谢!内容由AppSeed - App Generator提供。
- (免费)Flask Pixel UI Kit - 产品页面
- (免费)Flask Datta Able - 产品页面
- (免费)Flask Volt Free - 产品页面
- (免费)Flask Argon - 产品页面
1# -什么是 Flask
Flask 是一个轻量级的 WSGI Web 应用框架。它旨在让用户快速轻松地上手,并能够扩展至复杂的应用程序。Flask 被归类为微框架,旨在保持其框架核心的精简性,同时保持高度的可扩展性。
2# - 安装 Flask
$ pip install Flask
3# - 创建隔离环境
$ python -m venv flask_env
激活虚拟环境
$ source flask_env/bin/activate
停用虚拟环境
$ deactivate
4# - 一个超级简单的 Flask 应用
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return f'Hello from Flask!'
5# - 启动应用程序
$ env FLASK_APP=hello.py flask run
* Serving Flask app "hello"
* Running on http://127.0.0.1:5000/
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
让我们使用配置:
更新PROJECT_ROOT/app/__init__.py
以使用它:
from flask import Flask
from app import config
app = Flask(__name__)
app.config.from_object(config.DevelopmentCfg) # <--- Magic line
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)
HTML模板
<html>
<head>
<title>Flask Template Example</title>
</head>
<body>
<div class="container">
<p>Result: {{my_string}}</p>
</div>
</body>
</html>
http://localhost:5000/test
通过在浏览器中访问,我们应该看到:
状态:Jinja Works
8# - 使用 Flask shell
$ flask shell
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
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
更新PROJECT_ROOT/app/__init__.py
以使用模型:
from flask_sqlalchemy import SQLAlchemy
...
db = SQLAlchemy (app) # flask-sqlalchemy
User
可以使用 Flask Shell 创建表:
$ flask shell
>>> from app import db
>>> db.create_all()
第二种方法是使用 Flask 提供的钩子在第一次请求时自动创建表。
更新PROJECT_ROOT/app/__init__.py
如下:
# Setup database
@app.before_first_request
def initialize_database():
db.create_all()
10# - 通过 Flask shell 列出用户
$ flask shell
>>> from app.models import User
>>> User.query.all()
# HERE we should see all users
让我们看看这个理论如何应用于这些开源 Flask 示例:
Flask Pixel UI 套件
采用Flask框架编码的开源 Web 应用程序- 功能:
- UI 套件:Themesberg 的 Pixel UI 套件
- UI-Ready,Jinja2 模板
- SQLite 数据库,Flask-SQLAlchemy ORM
- 基于会话的身份验证流程(登录、注册)
- Pixel Lite Flask. - 产品页面
- Pixel Lite Flask - 现场演示
Flask Datta Able
Flask Dashboard由 AppSeed 平台基于 Datta Able(免费版)生成,Datta Able 是一款现代 Bootstrap 4 仪表板模板。Flask 代码库提供了身份验证、数据库、ORM 和部署脚本。
- Flask Datta Able - 产品页面
- Flask Datta Able - 演示
免伏特烧瓶
开源Flask Dashboard在 Volt Dashboard(免费版)之上使用基本模块、数据库、ORM 和部署脚本进行编码,是一种现代 Bootstrap 仪表板设计。
Volt 是一款免费开源的 Bootstrap 5 管理面板,包含 100 多个组件、11 个示例页面和 3 个自定义插件。Volt 无需 jQuery 依赖,这意味着所有库和脚本都无需 jQuery 支持。
- Flask Dashboard Volt - 产品页面
- Flask Dashboard Volt - 演示- 实时部署
Flask 仪表盘氩气
Argon Dashboard 包含 100 多个独立组件,让您可以自由选择和组合。所有组件都可以采用不同的颜色,您可以使用 SASS 文件轻松修改。
从原型设计到功能齐全的代码,您将节省大量时间,因为所有元素都已实现。此仪表板附带预构建的示例,因此开发过程无缝衔接,从我们的页面切换到实际网站也非常容易。
- Flask Dashboard Argon - 产品页面
- Flask Dashboard Argon 演示- 实时应用
感谢阅读!更多资源请访问:
鏂囩珷鏉ユ簮锛�https://dev.to/sm0ke/flask-cheat-sheet-and-free-samples-25im谢谢!顺便说一下,我的昵称是Sm0ke,我在Twitter上也很活跃。