Skip to content

TRYang/Yagra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1.功能需求:

要求建立一个完整的站点,详细功能要求如下:

1、注册(用户名,密码;用户名不一定要求是邮箱,你可以自己定规则)
2、登录,登出
3、上传头像(只需要一个头像即可,但是要求可以替换,不需要头像编辑等功能)
4、提供头像访问API(无需支持size、default等参数,只要求能访问原图即可)

2.设计方案:

源码分三类:静态文件,cgi程序,配置文件

静态文件:
    主页
    登录界面
    注册界面
    找回密码界面
    重置密码界面
    API使用文档界面
cgi程序:
    索引,用于判断cookie直接登录(index.py)
    注册(register.py)
    登录(login.py)
    登出(logout.py)
    上传头像(upload.py)
    修改密码(reset.py)
    根据用户id显示用户的主页(showPage.py)
    找回密码(findout.py)*
配置文件:
    由于所有程序采用python开发,配置文件也是用python格式,方便引用。
    需要配置的项在安装说明中说明。
安装程序:
    setup.py  功能是初始化数据库,还有一些出错情况没处理完
头像文件:
    用户的头像文件,直接存放在http服务器下,将路径信息存入数据库
密码:
    密码保存的方式时在明文后添加一段salt,再用sha-1算法加密,最后得到40位长的16进制串
    可以通过注册用的邮箱找回密码,采用smtplib发邮件给用户进行重设密码
用户名:
    可使用用户名或邮箱进行登录
邮箱:
    每个帐号都必须绑定一个唯一的邮箱,不能有两个不同的UserName绑定到同一个邮箱
    邮箱名可以作为用户名登录
    当忘记密码后也可以让系统发一个修改密码的邮件到绑定的邮箱
    用户随时可以改变绑定的邮箱,但必须保证唯一性
API:
    可用http://server_address/data/finger来获取用户user_name的头像
    finger采用sha算法进行hash,python可以用一下代码获取指纹:
        import sha
        print sha.new(user_name).hexdigest()
    例如服务器的域名是localhost,用户名为'test'
    则可以用一下的url获取头像:
        http://localhost/data/a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
Cache:
    增加了Cache功能,在用户登录时进行优化,根据用户上次登录的时间,cache最近登录过的用户。
    当用户数量巨大时,用户登录会先查询cache table,如果最近登录过,则很快可以获得登录信息。


站点实现主要通过cgi程序,调用mysql接口,实现数据(头像)的上传和下载。
用户的功能通过http的session来实现,通过读取cookie中的sid和设置来判断用户。

带*号项为扩展,可选实现

3.安装说明:

1、配置mysql
    首先需要配置conf/conf.py中的mysql服务器信息
        mysql_server:mysql服务器的地址
        mysql_user:登录mysql的用户
        mysql_password:登录mysql用户对应的密码
        mysql_database:mysql使用的database
    配置完后需要用mysql管理员创建mysql_user用户,创建mysql_database,授权给用户。
        创建用户:create user 'user_name'@'server_address' identified by 'user_password';
        创建数据库:create database 'database_name';
        授权:grant all on 'database_name'.* to 'user_name';

2、配置管理员信息
    AdminName:管理员姓名或id
    AdminEMail:管理员的E-mail地址,用于系统故障发送报告到邮箱

3、配置服务器信息
    http_doc_path:服务器存放文档的根目录
    http_cgi_path:服务器/cgi-bin/的目录
    * 以上两项根据http server的配置文件来设置
    * 注意目录的权限问题,必须具有写权限。
    CGI_log_dir:服务器存放cgi程序日志的目录

4、配置管理邮箱信息
    Server_mail:管理用的邮箱名,用于发邮件帮助用户找回丢失的密码
    Server_mail_host:邮箱服务器的域名
    Server_mail_password:登录邮箱的密码
    Server_mail_postfix:邮箱地址的后缀

5、运行脚本
    配置好参数后,执行一下命令:
        ./setup.py init

About

This is a homework

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages