• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python的Django中django-userena组件的简单使用教程

Python的Django中django-userena组件的简单使用教程

作者:goldensun 字体:[增加 减小] 来源:互联网

goldensun 通过本文主要向大家介绍了python django教程,python django,python web django,python3.5 django,python中django等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

利用twitter/bootstrap,项目的基础模板算是顺利搞定。接下来开始处理用户中心。

用户中心主要包括用户登陆、注册以及头像等个人信息维护。此前,用户的注册管理我一直使用django-registration。只是这个APP有些不思进取,09年发布了0.8alpha版后就一直没什么动静。这次决定尝试另外一个用户模块组件django-userena。

相比django-registration,django-userena的功能要完善的多。除基础的登陆注册模块外django-userena甚至还带了站内消息功能。django-userena的易用性方面也做的非常的不错。django-userena自带了默认模板,并有提供一个完整的演示项目,让你可以轻松上手。这里有个官方的在线demo,感兴趣可以去看看。
django-userena同twitter/bootstrap的整合

我们自然是希望所有的APP不用做任何修改,拿来就能用了。不过事与愿违,在整合的过程中多多少少都会遇到一些问题。django-userena默认的模板在项目中显示的非常难看。我们需要重写django-userena的默认模板,并且用django-bootstrap来生成form。

forms.py
#为原始form添加BootstrapMixin
from bootstrap.forms import BootstrapMixin

class BsAuthenticationForm(AuthenticationForm, BootstrapMixin):
 def __init__(self, *args, **kw):
  super(BsAuthenticationForm, self).__init__(*args, **kw)
  self.__bootstrap__()
 
urls.py
#重写urls,指定使用的form
from django.conf.urls.defaults import *
from userena import views as userena_views
from profiles.forms import BsSignupForm, BsAuthenticationForm

urlpatterns = patterns('',
 url(r'^signup/$', userena_views.signup,
  {'signup_form': BsSignupForm}, name='userena_signup'),
 url(r'^signin/$', userena_views.signin,
  {'auth_form': BsAuthenticationForm}, name='userena_signin'),
 (r'^', include('userena.urls')),
)

</div>

中文用户名问题

同django-admin一样,django-userena也无法使用中文进行注册。对于一个中文网站而言,不能使用中文注册ID似乎有些太不合理的。

django-userena使用正则表达式对用户名进行校验,重写注册form修改认证规则即可取消该限制。

USERNAME_RE = r'^\S+$'
attrs_dict = {'class': 'required'}

class BsSignupForm(SignupForm, BootstrapMixin):
 username = forms.RegexField(regex=USERNAME_RE,
        max_length=30,
        widget=forms.TextInput(attrs=attrs_dict),
        label=_("Username"),
        error_messages={'invalid': _('Username must contain only letters, numbers, dots and underscores.')})

 def __init__(self, *args, **kw):
  super(BsSignupForm, self).__init__(*args, **kw)
  self.__bootstrap__()


</div>

</div>

您可能想查找下面的文章:

  • Python之Web框架Django项目搭建全过程
  • Python之Web框架Django项目搭建全过程
  • Python中Django发送带图片和附件的邮件
  • Python中Django 后台自定义表单控件
  • python django事务transaction源码分析详解
  • python+django快速实现文件上传
  • Python采用Django开发自己的博客系统
  • Python+django实现简单的文件上传
  • Python Django使用forms来实现评论功能
  • Python采用Django开发自己的博客系统

相关文章

  • 在Django中进行用户注册和邮箱验证的方法
  • python中二维阵列的变换实例
  • 讲解python参数和作用域的使用
  • 详解在Python程序中自定义异常的方法
  • Python爬虫利用cookie实现模拟登陆实例详解
  • 解决python3 urllib中urlopen报错的问题
  • 通过python下载FTP上的文件夹的实现代码
  • python实现图片变亮或者变暗的方法
  • 发布你的Python模块详解
  • Python的一些用法分享

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python实现问号表达式(?)的方法
    • 使用Python进行稳定可靠的文件操作详解
    • 详解Python中expandtabs()方法的使用
    • 详细介绍Python的鸭子类型
    • 《Python之禅》中对于Python编程过程中的一些建议
    • python入门之语句(if语句、while语句、for语句)
    • python实现判断数组是否包含指定元素的方法
    • python操作日期和时间的方法
    • Python实现批量更换指定目录下文件扩展名的方法
    • wxpython 学习笔记 第一天

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有