app 服务端编写(2),python

作者: 笨驴爱吃胡萝卜 | 来源:发表于2017-05-10 10:52 被阅读268次
    989868A2-723E-41F2-9A47-9E413C25F7C5.png

    前一篇说道爬虫,数据爬到了自然要和数据库连接还有存储,这里我在学习爬虫的时候以为get到了一个新名称,分布式爬虫,还没有深研究了解的可以赐教。

    数据库

    爬取到的数据放到数据库

    lass DBManager():
        host = ''
        port = 0
    
        def __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 db
    
        def get_dbItemsNum(self,dbname):
            db = self.get_db()
            collection = db[dbname]
            num = collection.find().count()
            return num
    
    
            return ;
        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 = {'data': items}
        return dumps(data)
    

    开始打算做个途牛的app demo 后来发现api 太多了就放弃了。

    37B1A984-D121-4B6C-990A-49803F432B1F.png

    运行起来,就这效果了,你的每一次访问,都是自己的访问记录
    都会打印到这里。

    下来就是app 编写了,这里不仅仅是app 的编写,可能还有对于web 页面等一切前端的页面编写。
    写到这里,我也明白了,为什么后端个别人看不上前端,因为前端对于服务端仅仅是写页面的,没有什么技术含量。这点还是可以讨论的。

    网络配置

    如果你是自己电脑不是在云端部署而是在自己的电脑本地部署,那就需要一个工具了,就是一个花瓶Charles 这个工具了,如果仅仅是模拟器不是真机调试,那么这个也不需要了。

    模拟器.png

    这样简单的app 开始他的web 服务了

    1C5D3B24-65A7-473F-A8F1-10E810BD7739.png

    访问记录,这里还有个问题,我还没有探索,就是多线程的问题,因为目前我就一个模拟器,没有出现多个请求不过来的情况。并发对于Flask估计也是考验。
    特别是高并发。

    简单总结

    到这里一个app 简单简答架构,就ok,因为app是为心爱的人写的,名字起的比较中二,不过对于技术分析,这个可以忽略不计。
    下一步,就是更多的方式的数据爬取了和网络优化,分层+多途径+多情况分析,但是可能不会逃离这个主干。
    下一篇,异步爬去,继续。。。。。

    相关文章

      网友评论

        本文标题:app 服务端编写(2),python

        本文链接:https://www.haomeiwen.com/subject/tsvrtxtx.html