当前位置: 首页 > news >正文

一般做网站的在哪里找福州网站建站公司

一般做网站的在哪里找,福州网站建站公司,西安网站建设云速,萍乡网站建设哪家好目的 本文目的#xff1a;实现获取主页时间线和状态推送功能。#xff08;完整代码附在文章末尾#xff09; 相关知识 在我上一篇文章 《使用Redis构建简易社交网站(2)-处理用户关系》中提到了实现用户关注和取消关注功能。 那这篇文章将教会你掌握#xff1a;1#x…目的 本文目的实现获取主页时间线和状态推送功能。完整代码附在文章末尾 相关知识 在我上一篇文章 《使用Redis构建简易社交网站(2)-处理用户关系》中提到了实现用户关注和取消关注功能。 那这篇文章将教会你掌握1redis基本命令2python基本命令。 redis基本命令 zadd将成员加入到有序集合中并确保其在正确的位置上。 conn redis.Redis() conn.zadd(testzset, member2, 3) conn.zadd(testzset, member1, 2) conn.zadd(testzset, member3, 1) 执行后 member3member1member2 执行结果111 zrange返回有序集合中指定区间内的成员。 conn redis.Redis() conn.zrange(testzset, 0, 1) 执行结果[member3, member1] zrevrange按分值递减的顺序返回有序集合中指定区间内的成员。 conn redis.Redis() conn.zrevrange(testzset, 0, -1) 执行结果[member2, member1, member3] hgetall返回哈希表中所有的域-值对。 conn redis.Redis() conn.hgetall(testhash) 执行结果{field1: 2} hget从哈希中获取指定域的值。 conn redis.Redis() conn.hget(testhash, field1) 执行结果2 pipeline将多条命令按照先后顺序放进一个队列中一般配合execute一同使用原子性atomic地执行队列里的命令。 conn redis.Redis() pipe conn.pipeline(True) # 事务开始 pipe.incr(counter) pipe.incr(counter) pipe.incr(counter) pipe.execute() # 事务执行 执行结果[1, 2, 3]通过下标即可获取对应命令的执行结果。 python基本命令 使用格式化拼接字符串 My name is %s, Im %i years old%(educoder, 2) 执行结果My name is educoder, Im 2 years old 将字符串转换为浮点数 float(1.23) 执行结果1.23 实战例题 编写 get_home_timeline(uid) 函数实现获得主页时间线的功能具体参数与要求如下 方法参数uid为要获取主页时间线的用户编号获取动态编号的实现从存储用户主页时间线的有序集合home:{uid}中按照分值递减的顺序取出所有成员获取动态详情的实现遍历动态编号使用事务一次性获取每个动态编号对应动态详情哈希键post:{pid}的所有域-值对返回主页时间线的实现返回事务执行的结果。 编写 post(uid, content) 函数实现发布动态并将动态推送给粉丝的功能具体参数与要求如下 方法参数uid为要发布动态的用户编号content为要发布的动态内容发布动态的实现调用第一关中实现的create_post方法并接收返回的动态编号若发布失败则取消发布返回None获取发布时间的实现从新发布的动态编号对应的动态详情哈希键post:{pid}中获取posted域更新个人主页的实现将新发布的动态编号存储到个人主页有序集合键profile:{uid}中分值为转为浮点数后的发布时间更新粉丝主页时间线的实现遍历用户的粉丝列表followers:{uid}将新发布的动态编号存储到每个粉丝的主页时间线的有序集合home:{follower_id}中分值为转为浮点数后的发布时间返回发布结果的实现返回新发布的动态编号。 测试说明 测试输入4 预期输出 用户 4 关注 用户 1 关注结果: True测试 post 方法... 创建动态: 1 创建动态: 2 用户 1 的动态列表: [2, 1] 用户 4 的主页时间线动态编号: [2, 1]测试 get_home_timeline 方法... 用户 4 的主页时间线: [{content: NEW post from user 1!!!, uid: 1, user_name: test_user1, id: 2}, {content: This is the first post from user 1, uid: 1, user_name: test_user1, id: 1}] code.py #code.py #-*- coding:utf-8 -*-import re import time import redisconn redis.Redis()# 获得主页时间线 def get_home_timeline(uid, page1, count30):# 请在下面完成要求的功能#********* Begin *********#post_ids conn.zrevrange(home:%s%(uid), 0, -1)pipe conn.pipeline(True)for pid in post_ids:pipe.hgetall(post:%s%(pid))return pipe.execute()#********* End *********## 发布动态并将动态推送给粉丝 def post(uid, content):# 请在下面完成要求的功能#********* Begin *********#pid create_post(uid, content)if not pid:return Noneposted conn.hget(post:%s%(pid), posted)conn.zadd(profile:%s%(uid), pid, float(posted))followers conn.zrange(followers:%s%(uid), 0, -1)pipe conn.pipeline(False)for follower in followers:pipe.zadd(home:%s%(follower), pid, float(posted))pipe.execute()return pid#********* End *********## 关注用户 def follow(uid, other_uid):fkey1 following:%s%(uid)fkey2 followers:%s%(other_uid)if conn.zscore(fkey1, other_uid):return Nonenow time.time()pipe conn.pipeline(True)pipe.zadd(fkey1, other_uid, now)pipe.zadd(fkey2, uid, now)following, followers pipe.execute()posts conn.zrevrange(profile:%s%(other_uid), 0, 100, withscoresTrue)if posts:pipe.zadd(home:%s%(uid), **dict(posts))pipe.hincrby(user:%s%(uid), following, int(following))pipe.hincrby(user:%s%(other_uid), followers, int(followers))pipe.execute()return True# 取消关注 def unfollow(uid, other_uid):fkey1 following:%s%(uid)fkey2 followers:%s%(other_uid)if not conn.zscore(fkey1, other_uid):return Nonepipe conn.pipeline(True)pipe.zrem(fkey1, other_uid)pipe.zrem(fkey2, uid)following, followers pipe.execute()posts conn.zrevrange(profile:%s%(other_uid), 0, -1)if posts:pipe.zrem(home:%s%(uid), *posts)pipe.hincrby(user:%s%(uid), following, -int(following))pipe.hincrby(user:%s%(other_uid), followers, -int(followers))pipe.execute()return True# 创建新用户 def create_user(login_name, real_name):login_name login_name.lower()if conn.hget(users, login_name):return Noneuid conn.incr(user:id)pipe conn.pipeline(True)pipe.hset(users, login_name, uid)pipe.hmset(user:%i%(uid), {login_name: login_name,id: uid,real_name: real_name,followers: 0,following: 0,posts: 0,last_signup: time.time(),})pipe.execute()return uid# 为用户创建新动态 def create_post(uid, content):pipe conn.pipeline(True)pipe.hget(user:%i%(uid), login_name)pipe.incr(post:id)login_name, pid pipe.execute()if not login_name:return Nonepipe.hmset(post:%i%(pid), {id: pid,uid: uid,content: content,posted: time.time(),user_name: login_name,})pipe.hincrby(user:%i%(uid), posts)pipe.execute()return pid read.py #read.py #-*- coding:utf-8 -*-import os import sys import time import redis import pprint from code import *conn redis.Redis() retry_time 0 while True:try:conn.ping()breakexcept redis.exceptions.ConnectionError:os.system(redis-server /dev/null 21 )retry_time 1if retry_time 3:breakpipe conn.pipeline(True) pipe.delete(users, user:id) keys (conn.keys(user:*) conn.keys(followers:*) conn.keys(following:*) conn.keys(post:*) conn.keys(profile:*) conn.keys(home:*) ) if keys:pipe.delete(*keys) pipe.execute()# 创建测试数据 join_str for i in xrange(10):login_name test_user%i%(i1)real_name join_str.join(login_name.split(_)).capitalize()create_user(login_name, real_name)uid int(sys.stdin.readline().strip())print 用户 %i 关注 用户 1%(uid) f_result follow(uid, 1) print 关注结果: str(f_result) printprint 测试 post 方法... content This is the first post from user 1 pid post(1, content) print 创建动态: str(pid) content NEW post from user 1!!! pid post(1, content) print 创建动态: str(pid) my_profile conn.zrevrange(profile:1, 0, -1) print 用户 1 的动态列表: str(my_profile) home_timeline conn.zrevrange(home:%i%(uid), 0, -1) print 用户 %i 的主页时间线动态编号: %(uid) str(home_timeline) printprint 测试 get_home_timeline 方法... my_home get_home_timeline(uid) for info in my_home:info.pop(posted, 404) print 用户 %i 的主页时间线: %(uid) str(my_home)
http://www.huolong8.cn/news/94602/

相关文章:

  • 网页站点怎么命名鄞州区建设局网站
  • 哈尔滨网站改版专门做婚庆的网站
  • 上海利恩建设集团有限公司网站微网站开发服务
  • 泰州网站设计哪家好win2008网站404
  • 苏州企业网站建设电话婚纱摄影网站怎么建设
  • 藁城网站建设哪家好网站建设与管理视频
  • 做公司网站的时间开发免费app
  • 平凉市建设局门户网站东莞wordpress
  • 有没有外国人做发明的网站专做品牌网站
  • 做网站运营有前途游戏试玩平台代理
  • 饰品网站建设规划书自学seo能找到工作吗
  • 织梦做网站的详情如何编写网站建设
  • 网站数据库查询怎么做广告公关公司
  • 哪个网站做国内销海外的wordpress hao123
  • 做互联网需要网站吗自助建站系统平台
  • 做商业网站需要注册公司吗甘肃网站备案审核
  • 怎么做系部网站首页美食网站建设服务策划书
  • 网站开发员属于手机端网站做app
  • 移动路由器做网站服务器关于网站制作的指标
  • 网站邮件发送功能怎么做dedecms 手机网站
  • 免费建立网站平台华为商城官网手机版
  • 株洲网站建设 株洲网站制作wordpress无法打开
  • 网站建设微商城制作模板网站
  • 茂名网站建设公司搬瓦工安装wordpress
  • 慈溪哪点有学做网站的凯里有哪些网站开发公司
  • 网站开发 只要网页游戏网络游戏
  • 网站建设服务预算南京林业大学实验与建设网站
  • 章贡区综合网站建设商家网站后台不显示文章内容
  • 广州做网站专业公司江苏弘盛建设工程集团有限公司网站
  • 阿里云买啦域名怎么建设网站软文撰写