Tagged

Flask

A collection of 19 posts

Flask

Flask-User v1.0 自定义 UserManager

Flask-User 用户注册表单的默认密码验证规则为:长度不小于 6 位,必须包含大写和小写字母。在 v0.6 版本时,可以直接通过实例化 UserManager 类时传入自定义方法重写规则。 db_adapter = SQLAlchemyAdapter(db, User) user_manager = UserManager( db_adapter, app, password_validator=password_length, user_profile_view_function=user_profile) v1.0 以后版本则需要通过创建 CustomUserManager(UserManager) 自定义类重写规则。 # 通过自定义类重写 UserManager 中的方法 class CustomUserManager(UserManager): def password_validator(self,

Python

Pipenv - Python 虚拟环境管理器

Pipenv - Pyhton 官方推荐的包管理工具。 它与 NodeJS 的 NPM 包管理器和 PHP 的 Composer 等类似,通过引入 Pipfile 和 Pipfile.lock 文件实现自动化的虚拟环境和包管理功能。 安装 pipenv $ pip install --user pipenv 初始化 创建项目目录 ~ $ mkdir myproject 初始化项目环境 ~/myproject $ pipenv --python 3 使用 安装 flask ~/myproject $ pipenv install flask 打开项目 shell ~/myproject $ pipenv shell Spawning environment shell (/bin/

Python

Python 创建 Linux 后台运行任务

比如 rsync 复制文件或 restic 备份文件到云平台,将这一类耗时的操作扔到 Linux 后台去运行。 使用 subprocess.Popen() 执行命令,命令会在当前 Python 进程下创建子进程上运行。 运行任务 import subprocess errput = open(os.path.join(app.root_path, 'restic.err'), 'w') backup = subprocess.Popen(cmd, stderr=errput) errput.close() 查看任务进程 backup.pid,杀掉任务进程 backup.kill()

Tech

Python 键值对按顺序插入字典

Python Dict 键值对默认不是按顺序插入的,如果希望键值对按顺序依次插入,可以使用 collections.OrderedDict。 我的需求是将普通的 Dict 转换成 OrderedDict,实现方法如下: 先将键值以元组形式插入到数组,然后将数组转换成 OrderedDict from collections import OrderedDict order_conf = [ ('comment', request.form['comment']), ('path', share_path), ('browseable', request.form['browseable']), ('read only', request.form['read_only']), ('guest ok', request.form['guest_ok']), ] final_conf = OrderedDict(order_conf) 参考

Tech

Flask-Babel 使用

flask 若需多国语言支持,可使用 flask-babel 扩展实现。 基本使用步骤为,安装扩展并初始化,用 gettext() 函数设置需要被翻译的字符串。创建 babel.cfg 映射文件,然后使用 pybabel 依次生成 .pot .po .mo 翻译文件,当内容发生变化时使用 pybabel 更新翻译内容。 第一步 初始化 from flask import Flask from flask_babel import Babel app = Flask(__name__) app.config.update( DEBUG = True, TEMPLATES_AUTO_RELOAD = True, BABEL_DEFAULT_LOCALE

Python

Blueprint - Flask

Blueprint - 中文译为 蓝图。通过它规划 flask 中的各项功能模块。本笔记参考了: https://spacewander.github.io/explore-flask-zh/7-blueprints.html Flask 项目结构 在项目结构的规划方面参考了 Larger Applications 即采用 package 形式。 /foshime /static /templates /views user.py __init__.py database.py setup.py setup.py from setuptools import setup setup( name='foshime', packages=['foshime'], include_package_data=True,

Tech

Flask-SQLAlchemy 初次使用

安装 (venv) $ pip install flask-sqlalchemy 基础用法 官方文档 的入门示例代码如下,SQLAlchemy 对象和模型均写在 flask 的入口文件中。 from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database/cart.db' app.config.setdefault('SQLALCHEMY_TRACK_MODIFICATIONS', True) db = SQLAlchemy(app) class User(db.Model): id = db.Column(

Tech

Flask 安装

virtualenv 能解决多个 Python 项目依赖同一库的不同版本的问题,项目被限制在一个独立的虚拟环境中。 安装 virtualenv $ sudo pip install virtualenv 提示:终端中可以使用 alias pip=/usr/local/bin/pip3 为程序设置别名。 使用 virtualenv 创建并进入项目目录,创建虚拟环境: $ mkdir myflask $ cd myflask $ virtualenv venv New python executable in venv/bin/python Installing setuptools, pip............done. 虚拟环境创建好以后,使用以下命令激活环境: $ . venv/bin/activate 提示:windows 下使用 venv\