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


Posted in Python onMay 30, 2015

利用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')),
)

中文用户名问题

同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__()
Python 相关文章推荐
python中getattr函数使用方法 getattr实现工厂模式
Jan 20 Python
python模拟Django框架实例
May 17 Python
Django读取Mysql数据并显示在前端的实例
May 27 Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
Python实现判断一个整数是否为回文数算法示例
Mar 02 Python
python实现邮件发送功能
Aug 10 Python
使用Python的networkx绘制精美网络图教程
Nov 21 Python
pytorch 归一化与反归一化实例
Dec 31 Python
python 实现读取csv数据,分类求和 再写进 csv
May 18 Python
Python3爬虫中Selenium的用法详解
Jul 10 Python
Python如何爬取51cto数据并存入MySQL
Aug 25 Python
在SAE上部署Python的Django框架的一些问题汇总
May 30 #Python
python实现比较两段文本不同之处的方法
May 30 #Python
python统计文本文件内单词数量的方法
May 30 #Python
python使用win32com库播放mp3文件的方法
May 30 #Python
基于wxpython开发的简单gui计算器实例
May 30 #Python
python图像处理之镜像实现方法
May 30 #Python
python图像处理之反色实现方法
May 30 #Python
You might like
php抽奖小程序的实现代码
2013/06/18 PHP
php数字每三位加逗号的功能函数
2015/10/22 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
php pdo操作数据库示例
2017/03/10 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
JavaScript日历实现代码
2010/09/12 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
2013/12/22 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
js实现特定位取反原理及示例
2014/06/30 Javascript
Jquery结合HTML5实现文件上传
2015/06/25 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
JS校验与最终登陆界面功能完整示例
2020/01/13 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
Vue多选列表组件深入详解
2021/03/02 Vue.js
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
python解析xml模块封装代码
2014/02/07 Python
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
Python2实现的LED大数字显示效果示例
2017/09/04 Python
Python基于matplotlib实现绘制三维图形功能示例
2018/01/18 Python
python 函数内部修改外部变量的方法
2018/12/18 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
2020/04/08 Python
python 基于卡方值分箱算法的实现示例
2020/07/17 Python
python 进程池pool使用详解
2020/10/15 Python
精选鞋类、服装和配饰的全球领先目的地:Bodega
2021/02/27 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
酒店个人求职信范文
2014/01/25 职场文书
点菜员岗位职责范本
2014/02/14 职场文书
护士医德医风自我评价
2014/09/15 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
大学生村官工作总结2015
2015/04/09 职场文书