nyg · 2022-02-14T11:47:15Z 要使用蓝本下的模型,线在构造文件中引入。如from ..models import Permission, Role, User, Post, Comment表示从父文件夹中的models.py中引入Permission等模型 0 0 转发 引用并发言 0 0 复制链接 新窗口打开
nyg · 2022-02-14T11:41:37Z from .. import db中的一个.表示本目录下的文件或模型,而..表示上一个目录下的模型或程序。 1 0 转发 引用并发言 0 0 复制链接 新窗口打开
nyg · 2022-02-13T15:21:54Z 使用新添加的方法,我们可以在Python shell中轻易生成大量虚拟用户和文章:(venv )$ python manage.py. shell User.generate_fake(100) Post.generate_fake(100) 0 0 转发 引用并发言 0 0 复制链接 新窗口打开
nyg · 2022-02-13T14:49:02Z 为了区分生产环境的依赖和开发环境的依赖,我们可以把文件requirements.txt换成requirements文件夹,它们分别保存不同环境中的依赖。在这个新建的文件夹中,我们可以创建一个dev.txt文件,列出开发过程中所需的依赖,再创建一个prod.txt文件,列出生产环境所需的依赖。由于两个环境所需的依赖大部分是相同的,因此可以创建一个common.txt文件,在dev.txt和prod. 全文阅读 0 0 转发 引用并发言 0 0 复制链接 新窗口打开
nyg · 2022-02-13T14:36:38Z 若想把角色写入数据库,可使用shell会话:(venv)$pythonmanage.pyshell>>>Role.insert_roles()>>>Role.query.all() 管理员由保存在设置变量FLASKY_ADMIN中的电子邮件地址识别,只要这个电子邮件地址出现在注册请求中,就会被赋予正确的角色。 1 0 转发 引用并发言 0 0 复制链接 新窗口打开
nyg · 2022-02-13T14:28:08Z dumps()方法为指定的数据生成一个加密签名,然后再对数据和签名进行序列化,生成令牌字符串。expires_in参数设置令牌的过期时间,单位为秒。为了解码令牌,序列化对象提供了loads()方法,其唯一的参数是令牌字符串。这个方法会检验签名和过期时间,如果通过,返回原始数据。如果提供给loads()方法的令牌不正确或过期了,则抛出异常。 0 0 转发 引用并发言 0 0 复制链接 新窗口打开
nyg · 2022-02-13T14:26:25Z TimedJSONWebSignatureSerializer类生成具有过期时间的JSONWeb签名(JSONWebSignatures,JWS)。这个类的构造函数接收的参数是一个密钥,在Flask程序中可使用SECRET_KEY设置。p91 0 0 转发 引用并发言 0 0 复制链接 新窗口打开
nyg · 2022-02-13T13:43:10Z 为了保护路由只让认证用户访问,FlaskLogin提供了一个login_required修饰器。@login_required. 如果未认证的用户访问这个路由,FlaskLogin会拦截请求,把用户发往登录页面。 0 0 转发 引用并发言 0 0 复制链接 新窗口打开
nyg · 2022-02-13T12:05:37Z 与用户认证系统相关的路由可在auth蓝本中定义。 auth蓝本保存在同名Python包中。蓝本的包构造文件创建蓝本对象,再从views.py模块中引入路由。 from flask import Blueprintauth = Blueprint ('auth',__name__) from . import views 0 0 转发 引用并发言 0 0 复制链接 新窗口打开
nyg · 2022-02-13T11:43:01Z manage.py用于测试程序:python3 manage.py shell。shell命令用于在程序的上下文中启动Pythonshell会话。你可以使用这个会话中运行维护任务或测试,还可调试异常。P15 0 0 转发 引用并发言 0 0 复制链接 新窗口打开
nyg · 2022-02-13T11:18:05Z main等蓝本文件夹包括:init.py、form.py模型文件、errors.py、views.py(路由)。 0 0 转发 引用并发言 0 0 复制链接 新窗口打开
nyg · 2022-02-13T11:14:36Z 主目录APP下包括:_init_.py、templates、static(静态文件)、main等保存蓝本的文件夹、models.py模型文件等。 0 0 转发 引用并发言 0 0 复制链接 新窗口打开
nyg · 2022-02-13T11:11:29Z 项目文件下包括:主程序APP,配置文件、生成的需求文件、my-env虚拟环境文件夹、tests测试文件夹等。 0 0 转发 引用并发言 0 0 复制链接 新窗口打开
nyg · 2022-02-13T11:06:14Z manager.command修饰器让自定义命令变得简单。修饰函数名就是命令名,函数的文档字符串会显示在帮助消息中。test()函数的定义体中调用了unittest包提供的测试运行函数。 0 0 转发 引用并发言 0 0 复制链接 新窗口打开
nyg · 2022-02-13T11:02:34Z 顶级文件夹中的manage.py文件用于启动程序。 if__name__=='__main__': manager.run() 0 0 转发 引用并发言 0 0 复制链接 新窗口打开
nyg · 2022-02-13T09:48:21Z 构造文件导入了大多数正在使用的Flask扩展。由于尚未初始化所需的程序实例,所以没有初始化扩展,创建扩展类时没有向构造函数传入参数。create_app()函数就是程序的工厂 函数,接受一个参数,是程序使用的配置名。配置类在config.py文件中定义,其中保存的配置可以使用Flaskapp.config配置对象提供的from_object()方法直接导入程序。至于配置 对象,则可以通过名字从 全文阅读 2 0 转发 引用并发言 0 0 复制链接 新窗口打开