zoukankan      html  css  js  c++  java
  • Python学习笔记(六)

    操作MongoDB

    import pymongo
    client = pymongo.MongoClient(host='118.24.3.40',port=27017)
    db = client['szp'] # 选择数据库,如果数据库不存在就创建,存在就使用
    collection = db['stu_info']
    db['stu_info'].insert({'name':'dyx','sex':'nv'}) # 添加
    for d in db['stu_info'].find({'name111':'dy1111x'}): # 查找
        print(d)
    
    collection.delete_one({'title':'baidu.com'}) # 如果有多条,只会帮你删除一条
    collection.delete_many() # 如果有多条,删除多条
    
    collection.update({'jd':'jd.com'},{'jd':'www.jd.com','addr':'亦庄'}) # 修改

    sys模块,命令行执行py文件,传入参数

    import sys
    command = sys.argv # 它会把你运行python文件的时候,传入的参数都放到argv里面
    if len(command) > 1:
        excel = command[1]
        print('用例执行',excel)
    else:
        print('运行这个python文件时,需要传入一个用例名称,例如:'
              'python run_case.py case.xls')

    python导入模块

    导入模块的顺序
      1、当前目录下找这个python文件
      2、取python的环境变量里面找这个python文件
    导入模块的实质
      把这个模块的代码,从头到尾执行一次

    使用其他目录下的自定义函数,在父目录右键--mark directory as -- sources root

    然后 from lib.tools import my_db,md5 直接使用或者import 使用。调用

    但是这种方式在命令行运行时会报错,需要加入环境变量

    import sys,os
    base_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    # print(__file__) # 不管什么时候,__file__都是当前这个py文件的绝对路径
    sys.path.insert(0,base_path) # 临时添加目录到环境变量

    开发接口

    使用flask模块,pip install flask

    import flask,json
    server = flask.Flask(__name__) # 把当前这个py文件当做一个服务
    @server.route('/login',methods=['get','post']) # 指定接口名称与访问方式
    def login():
        # request.args 获取url中的,values都可以获取
        stu = flask.request.args.get('stu')
        username = flask.request.values.get('username') # 从客户端发过来的数据
        pwd = flask.request.values.get('password')
        json_data = flask.request.json.get('fdsf') # 获取入参是json类型的
        print(json_data)
        flask.request.cookies.get('cookie') # 获取cookies
        flask.request.headers.get('header') # 获取headers
        if username == 'nhy' and pwd == '123456':
            res = {'code':1000,'msg':'登录成功','sign':'jfksjdkljfo2j3i42ojiof'}
        else:
            res = {'code':500,'msg':'账号密码错误'}
        return json.dumps(res,ensure_ascii=False)
    server.run(port=5000,debug=True) # 加上debug=True,修改后不用重启,不加的话修改需要重启
    # host=0.0.0.0 监听所有ip,使局域网里其他用户可以访问
  • 相关阅读:
    The control collection cannot be modified during DataBind, Init, Load, PreRender or Unload phases.
    线程安全思考
    微服务网关哪家强?一文看懂Zuul, Nginx, Spring Cloud, Linkerd性能差异
    从构建分布式秒杀系统聊聊分布式锁
    基于Redis实现延时队列服务
    Redis分布式锁的正确实现方式
    探究 Redis 4 的 stream 类型
    JAVA 异常分类与理解
    缓存穿透,缓存击穿,缓存雪崩解决方案分析
    分布式之数据库和缓存双写一致性方案解析(一)
  • 原文地址:https://www.cnblogs.com/qingmingzy/p/9325866.html
Copyright © 2011-2022 走看看