app|app 服务端编写(2),python

app|app 服务端编写(2),python
文章图片
989868A2-723E-41F2-9A47-9E413C25F7C5.png
前一篇说道爬虫,数据爬到了自然要和数据库连接还有存储,这里我在学习爬虫的时候以为get到了一个新名称,分布式爬虫,还没有深研究了解的可以赐教。
数据库 爬取到的数据放到数据库

lass DBManager(): host = '' port = 0def __init__(self): self.host = 'localhost' self.port = 27017 print'init db'def get_db(self): client = pymongo.MongoClient(host=self.host, port=self.port) db = client['tuniu'] return dbdef get_dbItemsNum(self,dbname): db = self.get_db() collection = db[dbname] num = collection.find().count() return numreturn ; def insert_data_mg(self,db, dbname, json):collection = db[dbname]if collection.find().count() > 500 : collection.removeall collection.save(json) else: collection.save(json)

这里的host 和port 根据我对其他项目的观察,是要和网络web 的定义相关的,这里我写的本地,就没有关联。
MongoClient 是一切的起点,后期的增删改查 就和我们大学学的数据库联系起来的
对外服务Flask Flask 是一个web 服务框架
具体介绍:http://docs.jinkan.org/docs/flask/
就是访问数据库通过Flask 公开对数据访问,这里就可能会涉及到数据加密,数据安全等功能,因为是demo 简单了一下
@app.route('/api/v1/xia_ifanr', methods=['GET', 'POST']) def get_list_ifanr(): db = conn.tuniu collection = db['ifanr'] page_num = int(request.form['pageNum']) items = collection.find().skip(page_num * 10).limit(10).sort([("index",-1)]) data = https://www.it610.com/article/{'data': items} return dumps(data)

开始打算做个途牛的app demo 后来发现api 太多了就放弃了。
app|app 服务端编写(2),python
文章图片
37B1A984-D121-4B6C-990A-49803F432B1F.png
运行起来,就这效果了,你的每一次访问,都是自己的访问记录
都会打印到这里。
下来就是app 编写了,这里不仅仅是app 的编写,可能还有对于web 页面等一切前端的页面编写。
写到这里,我也明白了,为什么后端个别人看不上前端,因为前端对于服务端仅仅是写页面的,没有什么技术含量。这点还是可以讨论的。
网络配置 如果你是自己电脑不是在云端部署而是在自己的电脑本地部署,那就需要一个工具了,就是一个花瓶Charles 这个工具了,如果仅仅是模拟器不是真机调试,那么这个也不需要了。
app|app 服务端编写(2),python
文章图片
模拟器.png 这样简单的app 开始他的web 服务了
app|app 服务端编写(2),python
文章图片
1C5D3B24-65A7-473F-A8F1-10E810BD7739.png 访问记录,这里还有个问题,我还没有探索,就是多线程的问题,因为目前我就一个模拟器,没有出现多个请求不过来的情况。并发对于Flask估计也是考验。
特别是高并发。
简单总结 【app|app 服务端编写(2),python】到这里一个app 简单简答架构,就ok,因为app是为心爱的人写的,名字起的比较中二,不过对于技术分析,这个可以忽略不计。
下一步,就是更多的方式的数据爬取了和网络优化,分层+多途径+多情况分析,但是可能不会逃离这个主干。
下一篇,异步爬去,继续。。。。。

    推荐阅读