适用于TurboGears2的插件式注册应用程序,具有用于细粒度定制的钩子
项目描述
关于TGApp-Registration
注册是适用于TurboGears2的插件式注册应用程序。默认情况下,它将使用快速入门TurboGears用户模型,但提供了一组钩子,可用于更改注册表单和大多数注册方面。
注册目前支持SQLAlchemy和MongoDB作为数据库存储。
注册支持Turbomail和tgext.mailer发送电子邮件。
安装
tgapp-registration可以从pypi或bitbucket安装
pip install tgapp-registration
对大多数用户来说应该都能正常工作
如果您想使用Turbomail作为发送者,请从pypi安装它
pip install turbomail
如果您想使用tgext.mailer作为发送者,请从pypi或bitbucket安装
pip install tgext.mailer
插入注册
在您的应用程序config/app_cfg.py中导入plug
from tgext.pluggable import plug
然后,在文件末尾调用带有注册的plug
plug(base_config, 'registration')
如果您使用tgext.mailer,则需要插入它
plug(base_config, 'tgext.mailer')
您将能够访问注册过程,地址为http://localhost:8080/registration。
一些选项可以在您的应用程序的 .ini 配置文件中设置。至少需要一个选项才能使激活邮件正常工作。
registration.email_sender -> 发送邮件的地址(例如 no-repy@domain.com)
如果您使用 tgext.mailer,则需要设置一些配置,有关可用选项,请查看此处: https://github.com/amol-/tgext.mailer。
如果您既不使用 TurboMail 也不使用 tgext.mailer,则必须设置一些额外的配置选项,才能使激活邮件工作。
registration.smtp_host -> 用于发送邮件的 SMTP 服务器
registration.smtp_login -> 在 SMTP 服务器上进行身份验证的登录名
registration.smtp_passwd -> 在 SMTP 服务器上进行身份验证的密码
插件选项
在插入 tgapp-registration 时,可以将以下选项传递给插件调用
registration.form -> 用于注册表单的表单类的完整 Python 路径。默认情况下使用 registration.lib.forms.RegistrationForm。
可用钩子
注册功能暴露了一些钩子来配置其行为,可用于 TurboGears2 的 register_hook 的钩子有:
registration.before_registration_form(arguments) -> 在渲染表单之前运行。可以用来插入预处理条件,例如仅允许受邀用户注册。您可以通过向 arguments 中插入数据来填写表单,您可能希望将一个 json 序列化的字典放入 arguments['extra'] 中,该字典是一个隐藏字段
registration.before_registration(submitted_values) -> 在表单提交后运行。可以用来在它们被使用之前更改表单提交的值
registration.after_registration(registration, submitted_values) -> 在表单提交后运行。可以用来存储表单发送的任何数据,该数据注册模型不支持。
registration.on_complete(registration, email_data) -> 在注册完成后、发送激活邮件之前运行,可以用来更改发送的邮件。
registration.before_activation(registration, user) -> 在激活之前运行,在创建用户并将注册设置为活动状态之前运行
registration.after_activation(registration, user) -> 在创建用户后运行,可以用来在注册完成后将用户重定向到不同的页面。
公开模板
注册所使用的模板,可以使用 tgext.pluggable.replace_template 替换,包括:
registration.templates.register
registration.templates.complete
Alembic 迁移
tgapp-registration 版本 0.9.6 在 sqlalchemy 模型中包含了 extras 字段。要从早期版本升级,您需要运行
gearbox migrate-pluggable -c your_config.ini registration upgrade