ubuntu nginx初探(二) Flask数据库相关

跟着这几篇文章走:

https://www.jianshu.com/p/f7ba338016b8

https://blog.csdn.net/weixin_38753698/article/details/100516276

最终决定选用mongodb

下面是 MySQL 和 MongoDB 的基本元件的对应关系:

MongoDB安装

安装mongodb:
sudo apt-get install mongodb

python方面mongodb安装:(意思是上面的才是本体,python其实只是引出一个接口):
pip install Flask-PyMongo (会自动带上pymongo)

查看是否启动mongo及运行状态:
pgrep mongo -l

启动mongo:
sudo service mongodb start
停止mongo:
sudo service mongodb stop

ubuntu操作mongo的更多信息参考:
https://blog.csdn.net/weixin_44274975/article/details/87981809

Python的MongoDB使用

import pymongo

if __name__ == "__main__":

    #连接, 端口默认27017
    client = pymongo.MongoClient(host='127.0.0.1')
    # 创建数据库名为 huajuan 
    # 注意:如果 MongoDB 中无此库,需要在创建集合并且插入文档后,数据库方可自动创建
    huanjuan_db = client.huajuan

    db_list = client.list_database_names()  #查看已有的数据库
    print('db_list',db_list)  # 输出db_list ['admin', 'config', 'local'],可以看到huajuan还没被创建

    # 创建集合,person 相当于 mysql 的表名 
    # 当创建了名为 person 的集合时,执行代码,依然没有生成数据库
    huajuan_collections = huanjuan_db.person

    '''*******'''
    '''插入操作'''
    '''*******'''
    person_one = {
        'name': '花卷',
        'age': '1.5',
    }
    result = huajuan_collections.insert_one(person_one)  # 文档插入集合
    print(result)  # 打印结果
    print(result.inserted_id)  # 打印插入数据的返回 id 标识
    db_list = client.list_database_names()  #查看已有的数据库
    print('db_list',db_list)   # 此时输出 db_list ['admin', 'config', 'huajuan', 'local']

    #一次插入多条
    insert_list = []
    for i in range(3):
        person_one = {
            'name': '野生喵',
            'age': '24',
            'height': '175',
            'weight': '60'
        }
        person_two = {
            'name': '野生狗子',
            'age': '2',
            'height': '10',
            'weight': '3'
        }
        insert_list.append(person_one)
        insert_list.append(person_two)
    result = huajuan_collections.insert_many(insert_list)
    print('insert_many result:',result)

    '''*******'''    
    '''查找操作'''
    '''*******'''
    #查询一条,用find_one()
    result = huajuan_collections.find_one()
    if(result is not None):
        print('Find result:',result)
        print('result.name',result['name'])
        print('result.age',result['age'])
    #查询多条,用find()
    results = huajuan_collections.find()
    for cnt,item in enumerate(results):
        print('Find Index:',cnt,'    result.age',item['age'],'   result.name',item['name'])

    #find指定想要返回的字段,1代表要,0代表不要
    #注意除了_id,不能同时设置1和0. 也就是说,如果你设置某些为0,则其余的都为1. 反之亦然
    results = huajuan_collections.find({}, {'_id': 0,'age':1})
    for a in results:
        print("_id': 0,'age':1   ",a)
    results = huajuan_collections.find({}, {'image':0,'age':0})
    for a in results:
        print("'image':0,'age':0   ",a)

    #查找特定条件 , 比如age=24的
    result2 = huajuan_collections.find({'age': '24'})
    for item in result2:
        print('特定条件:  ',item)

    '''*******'''
    '''修改操作'''
    '''*******'''
    #修改第一个符合条件的
    query_name = {"name": "花卷"}
    new_value = {"$set": {"age": "996"}}
    huajuan_collections.update_one(query_name, new_value)

    #修改所有符合条件的
    query_name = {"name": "野生喵"}
    new_value = {"$set": {"age": "888222"}}
    huajuan_collections.update_many(query_name, new_value) 

    '''*******'''
    '''删除操作'''
    '''*******'''
    #单条删除
    query_name = {"name": "花卷"}  
    huajuan_collections.delete_one(query_name)  # 删除单条

    #多条删除
    query_name = {"name": "野生狗子"}  
    huajuan_collections.delete_many(query_name)  # 删除所有符合条件的

    #删除所有数据
    huajuan_collections.delete_many({})  # 删除所有数据


    db_list = client.list_database_names()  #查看已有的数据库
    print('db_list',db_list)  # 输出db_list ['admin', 'config', 'huajuan', 'local']
发布了161 篇原创文章 · 获赞 71 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/yxpandjay/article/details/103611134