app 服务端编写(2),python

app 服务端编写(2),python_第1张图片
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 太多了就放弃了。

app 服务端编写(2),python_第2张图片
37B1A984-D121-4B6C-990A-49803F432B1F.png

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

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

网络配置

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

app 服务端编写(2),python_第3张图片
模拟器.png

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

app 服务端编写(2),python_第4张图片
1C5D3B24-65A7-473F-A8F1-10E810BD7739.png

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

简单总结

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

你可能感兴趣的:(app 服务端编写(2),python)