Keg的身份验证视图

KegLogin的Python项目详细描述


…默认角色::代码
…角色::python(代码)
:语言:python图片::https://circleci.com/gh/level12/keg-login.svg?style=svg
:目标:https://circleci.com/gh/level12/keg login

…图片::https://codecov.io/github/level12/keg-login/coverage.svg?branch=master
:目标:https://codecov.io/github/level12/keg-login?分支=主

…_ Keg:https://pypi.python.org/pypi/keg


Keg嫒应用程序中用于用户登录和密码管理的基本视图和表单。


usage
**



有5个基本视图允许用户登录,注销并设置其密码。

*登录
*注销
*更改密码
*放弃密码
*重置密码

在应用程序中使用这些视图,子类化适当的视图
,它包含"responder"类并实现纯虚拟方法。


您可以通过在"我的应用程序"下创建
适当命名的模板来覆盖这些视图使用的模板。/templates/keg login/`or
重写"responder"子类中的"template"


示例
==


…代码::python

from keg import keg
from keg-login.ext import keglogin
from keg-login import views

keglogin(app)

class forgotpassword(views.forgotpassword):
class responder(views.forgotpassword.responder):
def request_password_reset(self,email):
generate_token_and_send_email(email)


templates
==


keg login充分利用了一个名为macros的强大jinja2功能。它们允许keg登录的
用户只覆盖一部分功能或设计,而不需要进行大量工作。方法如下:

安装keg登录后,在应用程序的模板文件夹中创建一个"keg login"文件夹。



围绕
登录视图。keg login只希望"base.html"在该文件中的某个地方公开
a``block main`。例如…

…代码:

{%扩展您的-master-template.html%}

{{{};此块可以在您的-master-template.html中定义
{%block content%}
{%block main%}{%endblock%}
{%endblock%}


keg login现在将使用主模板作为身份验证的基础。视图。



覆盖keg登录表单呈现(使用宏系统)
---------------------------------


在"app/templates/keg login/macros.html"中创建"macros.html"文件。首先,我们需要做的是添加::

{%extends"keg login/\u macros.html"%}

keg登录中的所有内容都是一个宏。

要覆盖的通用宏是"render_wrapper"宏。`` render_wrapper``
和jinja2的高级功能,允许keg登录中的表单用额外的html"包装"
。例如,如果有一堆额外的代码要用
包围表单元素。这需要更多的解释…



例如,假设您有这个"master"模板…

…代码::jinja2

<;body>;
<;div class="container">;
{%block container%}{%endblock%}
<;div>;
<;body>;

代码::html

{%扩展"base.html"%}

{%block container%}
<;div class="auth container">;
{%block main%}
{%endblock%}
<;div>;
{%endblock container%}

我们可以对
表单进行定制。例如,登录表单的"input"标记位于
"body>;div.container>;div.auth-container>;form>;input(s)"。如果我们的设计
需要在"form"和"input"之间有一个html元素怎么办?如果不重写每个表单实现,这就不可能
(这是不可接受的,您最好不要在此时使用keg登录,或者创建类似于
``render撸wrapper```.

to use``render撸wrapper``的东西,在您的`macros.html`文件中,但是这个…

代码:

{%macro render_wrapper()%}
{代码:

{%macro render_wrapper()%}
<;div class="form wrapper">;
{{{caller()}
<;div>;
{%endmacro%}


现在,所有KEG登录表单都将获得此处理。

state
===

*`master`:我们的"生产"分支


所有其他分支都是功能分支。


环境
==



安装要求:

`$pip安装--使用车轮--无索引--查找链接=要求/驾驶室-r需求/dev env.txt`
`$pip安装-e.。`

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用户界面如何在JavaGUI中为按钮创建各种颜色?   使用MSCAPI的RSA密钥包装的java使用   java Spring数据Redis JedisConnectionException:意外的流结束   java饼图未显示预期输出   java hystrixCommand注释commandKey的用途是什么   windows java可以从cmd运行jar,但不能通过双击来运行   java在单击按钮时遍历XML节点   java试图使用日期(int,int,int)构造函数   带有Buildship 2子项目的java不作为项目依赖项链接   java jsonrpc4j:如何从服务器获取列表<SomeObject>?   用于Java应用程序的内存设置MaxDirectMemory和MaxHeapMemory   java如何从以下类型格式化日期   javayoutube。搜索列表搜索不返回任何内容   java My参数在方法中不起作用,因为泛型存在问题   java如何将Map<Key1Type,Val1Type>转换为Map<Key1Type,Val2Type>   JavaJUnit测试:测试用例的改进,测试数组列表的长度?   java如何在Android中解析带有属性值的xml数据?   使用Hibernate对枚举类型进行Java8bean验证