社交APP工具的IOS开发

 在IOS开发中,总是会有很多的重复性的事件需要去做,特别是在开发ios社交APP的时候,很多工具的应用,需要很熟悉,所以在本篇就介绍一下几个常用的小工具,以方便大家IOS开发时的使用。

一、输入频率检测 

    如今多数都会用Redis去做三件事情:1. Token 2. 记录用户在线状态 3. 做频率检测 现在来介绍频率检测的实现。 

对频率检测的要求: 

1. 按业务区分,不同业务有自己不同的检测需求,比如发布评论只能2s钟发布一次,但是短信认证一天最多只能发五条短信。 

2. 同一业务有不同的时间段要求,比如发布评论只能2s发布一次,但是要求一天发布的次数不能超过200次等等。 

过期时间检测的大体思路是这样,每个用户的某个行为都算作redis里面的一个key,比如threshold:comment:10000, comment是指评论行为,10000是用户的id, 值是次数,每操作一次,就进行一次incr操作,redis过期时间为时间段要求,每次从redis里面获取这个key的值,跟最大次数做比较,超过最大次数则说明超过限度。 

二、用户输入验证 

Python装饰器做用户输入验证特别爽,就不用写一堆蛋疼丑陋又麻烦的if else了 

三、一些小细节 

有一些小的细节,比如获取用户输入,用web.pyweb.input()可能不是很方便,我们经常会把提交过来的东西从input字典里面拿出来赋值给一个个变量或者总是需要strip一下再使用等等,因此就做了个获取用户输入的工具: 

view sourceprint?01 import web  

02    

03 def form(is_strip, *args):  

04     form_data = web.input()  

05     values = []  

06     for arg in args:  

07         value = form_data.get(arg, '')  

08         if is_strip:  

09             value = value.strip()  

10         values.append(value)  

11     if len(values) == 1:  

12         return values[0]  

13     else:  

14         return values  

15    

16 def form2model(is_strip, model_class, exclude=()):  

17     model = model_class()  

18     form_data = web.input()  

19     for field in form_data:  

20         #排除一些特殊Field  

21         if field in exclude or field == 'submit' or field == 'captcha' \  

22             or field.endswith('_btn') or field == 'formkey':  

23             continue;  

24         value = form_data[field].strip() if is_strip else form_data[field]  

25         model.__dict__[field] = value  

26     return model 

这样获取输入就很方便了,就像这样: 

view sourceprint?1 name, age = form(True, 'name', 'age') 

第一个参数如果为true那么说明需要对参数进行strip 

第二个函数可以把用户的输入直接转换为一个Python对象。 

    基本的ios开发工具就是这些了,虽然是很小的开发工具,但是在实际的操作中也能有效提高开发的效率和代码的可维护性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值