def friend(host): try: if session.get('username') != host: return render_template('notlogin.html') else: try: #get host info sql = 'SELECT * FROM users WHERE user_name = %s;' parm = (host, ) hosts = User().get_User(sql, parm) #get info of users who host follow sql1 = 'SELECT users.* FROM users,relation WHERE relation.user_id = %s AND users.user_id = relation.follow_id;' parm1 = (hosts[0], ) friends = Relation().get_AllRelation(sql1, parm1) friend = Relation().get_Relation(sql1, parm1) except: traceback.print_exc() return render_template('error1.html') if friend is None: info = 'You haven not been following anyone yet.Go and find friends ↑↑↑' return render_template('friend.html', hosts=hosts, nofriend=info) else: return render_template('friend.html', hosts=hosts, friends=friends) except: traceback.print_exc() return render_template('error.html')
def follow(key, host): try: if session.get('username') != host: return render_template('notlogin.html') else: try: # get userinfo which host search sql = 'SELECT * FROM users WHERE user_name LIKE %s ORDER BY user_id DESC;' parm = ("%" + key + "%", ) users = User().get_AllUser(sql, parm) # get hostinfo parm2 = (host, ) hosts = User().get_User(sql, parm2) # get userinfo which host already followed sql1 = 'SELECT users.* FROM users,relation WHERE relation.user_id = %s AND users.user_id = relation.follow_id;' parm1 = (hosts[0], ) follows = Relation().get_AllRelation(sql1, parm1) except: traceback.print_exc() return render_template('error1.html') return render_template('friend.html', hosts=hosts, key=key, users=users, follows=follows) except: traceback.print_exc() return render_template('error.html')
def searchFriend(host): if session.get('username') != host: return render_template('notlogin.html') else: #get info of search sql = 'SELECT * FROM users WHERE user_name LIKE %s ORDER BY user_id DESC;' parm = ("%" + request.form['searchfriend'] + "%", ) key = request.form['searchfriend'] users = User().get_AllUser(sql, parm) user = User().get_User(sql, parm) parm1 = (host, ) hosts = User().get_User(sql, parm1) if user is None: error = 'user is not exist!' return render_template('friend.html', hosts=hosts, error=error) else: #查找已关注的人,与用户对比,确定状态 sql1 = 'SELECT users.* FROM users,relation WHERE relation.user_id = %s AND users.user_id = relation.follow_id;' parm1 = (hosts[0], ) follows = Relation().get_AllRelation(sql1, parm1) # followid = Relation().get_Relation(sql1, parm1) return render_template('friend.html', hosts=hosts, users=users, follows=follows, key=key, list='User list')
def unFollow(host, userid): # get host info sql = 'SELECT * FROM users WHERE user_name = %s;' parm = (host, ) hosts = User().get_User(sql, parm) # get info of user # sql = 'SELECT * FROM users WHERE user_id = %s;' # parm = (userid,) # userinfo = User().get_User(sql, parm) # delete relation sql_del = 'DELETE FROM relation WHERE user_id = %s AND follow_id = %s;' parm_del = (hosts[0], userid) Relation().set_Relation(sql_del, parm_del) # update the number of host follow sql_update = 'UPDATE users SET follownum = follownum - 1 WHERE user_id = %s;' parm = (hosts[0], ) User().set_User(sql_update, parm) # update the number of user fans sql_update1 = 'UPDATE users SET fansnum = fansnum - 1 WHERE user_id = %s;' parm1 = (userid, ) User().set_User(sql_update1, parm1) return redirect(url_for('friend', host=host))
def unFollow(host, userid): try: if session.get('username') != host: return render_template('notlogin.html') else: try: # get host info sql = 'SELECT * FROM users WHERE user_name = %s;' parm = (host, ) hosts = User().get_User(sql, parm) except: traceback.print_exc() return render_template('error1.html') try: # delete relation sql_del = 'DELETE FROM relation WHERE user_id = %s AND follow_id = %s;' parm_del = (hosts[0], userid) Relation().set_Relation(sql_del, parm_del) # update the number of host follow sql_update = 'UPDATE users SET follownum = follownum - 1 WHERE user_id = %s;' parm = (hosts[0], ) User().set_User(sql_update, parm) # update the number of user fans sql_update1 = 'UPDATE users SET fansnum = fansnum - 1 WHERE user_id = %s;' parm1 = (userid, ) User().set_User(sql_update1, parm1) except: conn = connect_db() conn.rollback() conn.close() traceback.print_exc() return render_template('error1.html') return redirect(url_for('friend', host=host)) except: traceback.print_exc() return render_template('error.html')
def doFollow(state, host, username, key): if session.get('username') != host: return render_template('notlogin.html') else: # get id of host follow or unfollow sql = 'SELECT * FROM users WHERE user_name = %s;' parm = (username, ) # users = User().get_AllUser(sql, parm) userinfo = User().get_User(sql, parm) # get host info parm2 = (host, ) hosts = User().get_User(sql, parm2) # get userinfo which host search sql = 'SELECT * FROM users WHERE user_name LIKE %s ORDER BY user_id DESC;' parm = ("%" + key + "%", ) users = User().get_AllUser(sql, parm) # get userinfo which host follow sql1 = 'SELECT users.* FROM users,relation WHERE relation.user_id = %s AND users.user_id = relation.follow_id;' parm1 = (hosts[0], ) follows = Relation().get_AllRelation(sql1, parm1) if state == 'FOLLOW': # can not follow hostself if host == username: error = 'you can not follow yourself' return render_template('friend.html', hosts=hosts, users=users, key=key, follows=follows, error=error) else: # add relation sql_add1 = 'INSERT INTO relation (user_id,follow_id) VALUES (%s,%s);' parm_add1 = (hosts[0], userinfo[0]) Relation().set_Relation(sql_add1, parm_add1) # update the num of follow sql_update = 'UPDATE users SET follownum = follownum + 1 WHERE user_id = %s;' parm = (hosts[0], ) User().set_User(sql_update, parm) # update the number of fans sql_update = 'UPDATE users SET fansnum = fansnum + 1 WHERE user_id = %s;' parm = (userinfo[0], ) User().set_User(sql_update, parm) return redirect(url_for('follow', key=key, host=host)) else: # delete relation sql_del = 'DELETE FROM relation WHERE user_id = %s AND follow_id = %s;' parm_del = (hosts[0], userinfo[0]) Relation().set_Relation(sql_del, parm_del) # update the number of host follow sql_update = 'UPDATE users SET follownum = follownum - 1 WHERE user_id = %s;' parm = (hosts[0], ) User().set_User(sql_update, parm) # update the number of user fans sql_update1 = 'UPDATE users SET fansnum = fansnum - 1 WHERE user_id = %s;' parm1 = (userinfo[0], ) User().set_User(sql_update1, parm1) return redirect(url_for('follow', key=key, host=host))
def home(host): try: if session.get('username') == host: try: # get infomation of host sql = 'SELECT * FROM users WHERE user_name = %s;' parm = (host, ) host1 = User().get_User(sql, parm) #get post number sql = 'SELECT COUNT(message_id) FROM message WHERE user_id = %s;' parm = (host1[0], ) postnum = Post().get_Post(sql, parm) # update host's number of post sql_update = 'UPDATE users SET postnum = %s WHERE user_id = %s;' parm = ( postnum[0], host1[0], ) User().set_User(sql_update, parm) # get follower number sql = 'SELECT COUNT(follow_id) FROM relation WHERE user_id = %s;' parm = (host1[0], ) follownum = Relation().get_Relation(sql, parm) # update number of follower sql_update = 'UPDATE users SET follownum = %s WHERE user_id = %s;' parm = ( follownum[0], host1[0], ) User().set_User(sql_update, parm) #get fans number sql = 'SELECT COUNT(user_id) FROM relation WHERE follow_id = %s;' parm = (host1[0], ) fansnum = Relation().get_Relation(sql, parm) # update host's number of fans sql_update = 'UPDATE users SET fansnum = %s WHERE user_id = %s;' parm = ( fansnum[0], host1[0], ) User().set_User(sql_update, parm) # get infomation of host sql = 'SELECT * FROM users WHERE user_name = %s;' parm = (host, ) hosts = User().get_User(sql, parm) # get infomation the posts of host and friend sql1 = 'SELECT message.*,users.user_name,users.userpic FROM message,relation,users WHERE relation.user_id = %s AND message.user_id = relation.follow_id AND message.user_id = users.user_id;' parm1 = (hosts[0], ) posts1 = Post().get_AllPost(sql1, parm1) sql2 = 'SELECT message.*,users.user_name,users.userpic FROM message,users WHERE message.user_id = %s and message.user_id = users.user_id;' parm2 = (hosts[0], ) posts2 = Post().get_AllPost(sql2, parm2) posts = sorted(posts1 + posts2, reverse=True) except: conn = connect_db() conn.rollback() conn.close() traceback.print_exc() return render_template('error1.html') return render_template('homeopage.html', hosts=hosts, posts=posts) else: return render_template('notlogin.html') except: traceback.print_exc() return render_template('error.html')