用户注册、登录和登出功能
Pinax里已经有现成的package来实现注册、登录等用户相关的功能。可以选择照着自己些,或者将pinax的account package复制出来使用,最后就是直接使用Pinax。
配置Pinax
下载、解压pinax。执行:
root@fruitschen-desktop:~/pinax-0.7beta2# python scripts/pinax-boot.py /root/workspace/pinax
root@fruitschen-desktop:~/workspace/pinax# cd /root/workspace/
root@fruitschen-desktop:~/workspace# source ./pinax/bin/activate
(pinax)root@fruitschen-desktop:~/workspace# cd pinax/
(pinax)root@fruitschen-desktop:~/workspace/pinax# pinax-admin clone_project social_project travelsite
(pinax)root@fruitschen-desktop:~/workspace/pinax/travelsite# python manage.py syncdb
出错,提示PIL有问题,查了一下,系统安装的已经安装了PIL,在Python解释器里也可以访问。莫名其妙阿。
解决PIL问题
(pinax)root@fruitschen-desktop:~/workspace/pinax/travelsite# cd ..
(pinax)root@fruitschen-desktop:~/workspace/pinax# pip install http://dist.repoze.org/PIL-1.1.6.tar.gz
……
(pinax)root@fruitschen-desktop:~/workspace/pinax# cd travelsite/
(pinax)root@fruitschen-desktop:~/workspace/pinax/travelsite# python manage.py syncdb
使用这种方式安装完PIL之后,服务器运行正常。但是老是提示sha模块已经过期。
启动服务器的shell脚本
总结起来,source命令用于激活pinax虚拟环境,经过试验,每次重启服务器或者其它涉及到manage.py都需要重新激活这个环境。方便起见建立到一个shell文件中:
source ./bin/activate
cd travelsite/
python manage.py runserver
文件保存为/root/workspace/pinax/start.sh,只要执行就可以启动服务器了。
寻找源代码
阅读项目的settings和urls可知,是account package实现了注册等功能。不过看到travelsite/apps目录下有about、friends_app、photos、tag_app这几个packages。找了老半天也没找到account在哪,最后在pinax/lib/python2.6/site-packages/Pinax-0.7beta2-py2.6.egg/pinax/apps/account/找到了源代码,作为一名Python菜鸟,只是听说过egg,但不了解egg为何物,不知道Pinax项目运行的时候是不是使用的这个account。
从url看来,pinax的account package提供了邮箱管理功能,注册、登录、openid登录功能,修改、重置密码,时区设置,语言设置,登出。