juewangpo
An amazing bravo excellent web application written in Python and Flask and Bootstrap, driven in SAE PaaS.
Deployment
- Use SVN to taken the '1'package to SAE.
- visit host/admin/initdb to init the database.
- visit host/admin/initusers to create random users.(optional)
- Remember to change The
AVATARURL
andBACKURL
to yourhost/upavatar
andhost/upback
Features
- By detect the os.environ, juewangpo can change mysql server automatically
- Use
SQLAlchemy
andFlask-SQLAlchemy
to make sql models UsePIL
to convert img then save in SAE Storage- Use Qiniu Cloud Storage to process and save images
- Customized User Profile page, various
- Follow/Unfollow somebody, fans/followed list
- Private Message(pm) system
- Integrate with guests lists of Wuhan Campus Love
- Notification system
- visits record (besides self visit)
-
register
login
edit
upavatar
upback
match
follow
followers
message
guests
.
Docs
/match
-
匹配表,过滤用户当天的匹配次数,转为int类型
-
次数字典,根据用户角色提供最大次数
times = int(MatchingRecord.query.filter_by(player=g.user.id,matching_date=date.today()).count()) max = config.TIMES.get(g.user.role) if times >= max: flash(u'你今天已匹配%s次,明天再来吧~' % max) return render_template('match.html', form=form)
七牛python sdk修改
我在python SDK中的class PutPolicy中手动添加了 persistentPipeline。
API文档里有,python SDK里暂时没有(add by lee @14.8.14)
消息提醒功能
1.思路:创建一个notify表,三个字段:id(主键),type(提醒类型),user_id(提醒人)
"""我想直接用表做,不用ORM。懒得看文档,速度修改!!"""
class Notify(db.Model):
id = db.Column(db.Integer, primary_key=True)
type = db.Column(db.String(20))
user_id = db.Column(db.Integer)
2.用户follow某人或发私信给某人时,notify表增加记录
# follow
db.session.add(Notify(type='follow', user_id=id))
db.session.commit()
# message
db.session.add(Notify(type='message', user_id=id))
db.session.commit()
3.主页上显示消息提醒
if g.user.is_authenticated():
fans = Notify.query.filter_by(type='follow', user_id=g.user.id).count()
message = Notify.query.filter_by(type='message', user_id=g.user.id).count()
4.主页上点击 /followers 或 /session删除记录
# followers
Notify.query.filter_by(type='follow', user_id=g.user.id).delete()
db.session.commit()
# session
Notify.query.filter_by(type='message', user_id=g.user.id).delete()
db.session.commit()
Warning
1.运行 /admin/migrate,不能确保完全OK。所以,迁移前先备份。
2.在models中修改字段,无法迁移,增减字段没问题。所以,记得手动在线上数据库修改。
3.备份,备份,备份。
4.测试,测试,测试。
models
- lala
- gaga
修改日志
14.9.1 add by lee
1./match
匹配系统,性别和状态默认值。用了 class="active" 和 radio 的checked 判断。
2./edit
家乡省市默认值,原来只需要在添加pro 和city就行了
<script type="text/javascript">
$(document).ready(function(){
$.initProv("#pro", "#city","{{ pro }}", "{{ city }}");
});
</script>
14.9.3 add by lee
1./match
匹配系统,输入框高度变了,背景颜色修改了,【Ta的档案】和【返回主页】的位置变了。
删除了无效的按钮报错(见1号的修改,已经有默认值了)
2.forms
和 views
删除了重复的form.height以及form.height.data(本来用wtforms做的,后来改为直接html)
3./edit
删除了无效的form.errors.height的报错
4./profile
"发送私信、取消关注、返回主页",修改了样式
-
/message_session
未读背景色,时间去除秒
WEBsite
演示网站:
juewangpo.sinaapp.com
网友评论