0630知识点整理#Python#网络请求,session,Redis,

时间:2019-07-06 15:49:17   收藏:0   阅读:100

网络请求

import requests
#get请求
url=http://img.xiumi.us/xmi/ua/17O3K/i/07efe34c090c4552078daea32d7ebc3a-sz_153856.jpg?x-oss-process=image/resize,w_1080/auto-orient,1/crop,x_0,y_0,w_720,h_587
d = {stu_name:矿泉水2}
r = requests.get(url,d)#发get请求

print(r.json,r.json() ) #返回的是一个字典
print(r.text,r.text)#返回的是一个字符串
print(r.content,r.content)#返回的是bytes类型

fw = open(sfsdfs.jpg,wb)
fw.write(r.content)
fw.close()

 

#post请求
url=http://api.nnzhp.cn/api/user/login
data = {username:niuhanyang,passwd:aA123456}#有多少key就写多少参数
r = requests.post(url,data)
print(r.json())

 

# 传cookie、header
url=https://qun.qq.com/cgi-bin/qun_mgr/get_friend_list
d = {bkn: 1179529977}
# cookie = {‘ tvfe_boss_uuid‘: ‘3a12ac91bd08d69c‘, ‘ pgv_pvid‘: ‘6758068840‘, ‘ pgv_pvi‘: ‘9797262336‘, ‘ RK‘: ‘1b4JBYR9aB‘, ‘ ptcz‘: ‘1056d2f367035d64d7b3e34b291bbe1d9c570081bf12a79eb1be0c574516c5fa‘, ‘ sd_userid‘: ‘35011558945432940‘, ‘ sd_cookie_crttime‘: ‘1558945432940‘, ‘ ptui_loginuin‘: ‘458727764@qq.com‘, ‘  o_cookie‘: ‘458727764‘, ‘ pac_uid‘: ‘1_458727764‘, ‘ pgv_si‘: ‘s2287503360‘, ‘ logout_page‘: ‘‘, ‘ uin‘: ‘o0525586735‘, ‘ ptisp‘: ‘cnc‘, ‘ skey‘: ‘@U8V4AaETp‘, ‘ p_uin‘: ‘o0525586735‘, ‘ pt4_token‘: ‘4QVJFLPA7QXrB3Up6AvUUxz3PC1gAqygUoTinU1nC1g_‘, ‘ p_skey‘: ‘GAX6P8UCl50rbNL6q-c6gok9l08LCe5pFysGs-y3PJM_‘, ‘ traceid‘: ‘3a69c2822e‘, ‘ ts_last‘: ‘qun.qq.com/member.html‘, ‘ ts_uid‘: ‘6279869462‘}
header = {cookie:pgv_pvi=7661869056; RK=KRZhhBpcbw; ptcz=aaeb20d1e9557251855ed7cb94a52a5e4a0868151f2f4a99de4397e5d901cc3b; uin=o0511402865; ptisp=cnc; pgv_si=s8267628544; skey=@YGZhPn1yj; p_uin=o0511402865; pt4_token=iRNGXHEgTDZlLvIMwPRm4BJq3L0A*Z8xEMVpeTal*vs_; p_skey=pgPUHTMEhWz5fG0iZZ2O1BC1oqxg7R-iN8wpSlMOB*o_; traceid=38d9de77e4}
r = requests.post(url,d,headers = header)
print(r.json())

pgv_info=ssid=s1631281820;#在参数中异常报错,单独赋值

 

#上传文件
url= http://api.nnzhp.cn/api/file/file_upload
r = requests.post(url,files={file:open(jjj.jpg,rb)})
print(r.text)
#传session 
url=http://api.nnzhp.cn/api/user/stu_info
session = requests.session()
r1 = session.get(url,params={stu_name:矿泉水})
r2 = session.post(url,data={stu_name:矿泉水})
print(r1.json())
#session 能自动管理cookie

r= session.post(http://api.nnzhp.cn/api/user/login,
                  data={username:niuhanyang,passwd:aA123456})
session.post(
http://api.nnzhp.cn/api/user/pay) session.post(http://api.nnzhp.cn/api/user/order) #都可以使用login接口的session

 

redis

import redis

定义:关系型数据库

import redis

r = redis.Redis(host=118.24.3.40,password=HK139bc&*,
                db=15,decode_responses=True) #db 0-16
r.set(name,123456)#key不能重复k,v
操作#string类型-1
r.set(jjj_session,sdfsgfsgdfs,60)#60为此数据失效时间 r.set(xiaoming,11)#set数据 print(r.get(nick).decode()) #获取数据(字符串类型) r.set(xiaoming,11)#修改数据 r.delete(xiaoming) #删除某个key
r.set(‘cnz_user:jiajinju‘,‘123456‘)#【:】为文件夹名cnz_user,表名jiajinju
操作#string类型-2
r.flushdb() #清除redis里面所有的key
r.flushall()#清除所有数据库里面所有的key
print(r.keys(*xx)) #获取当前数据库里面所有的key,也有过滤的功能
print(r.exists(jjj2))#判断这个key是否存在,存在就返回1,不存在就返回0
操作#hash类型
r.hset(cnz_user,liuzhao,123456)#增加数据
r.hset(cnz_user,jiangchuan,123456)
r.hset(cnz_user,jiangchuan,45678) #修改
r.hdel(cnz_user,jiangchuan) #删除里面的小key
r.delete(cnz_user) #删除大key
print(r.hget(cnz_user,liuzhao)) #获取指定key
print(r.hgetall(cnz_user)) #取到key里面所有的key和value
r.hmset(cnz_user,{"guoyanan":"123456","xiaojun":"456789"}) #批量set进去
print(r.type(cnz_user))
print(r.type(xx_:1:x iaohei))
r.expire(cnz_user,60) #设置失效时间

 

例子1:

# reg()
# login()
#1、username,password,密码要存密文的
#2、要校验用户,如果用户不存在的话,才可以注册
import redis

r = redis.Redis(host=118.24.3.40,password=HK139bc&*,
                db=15,decode_responses=True) #db 0-16,decode让密码统一格式
import hashlib

def reg():
    username = input(username:).strip()
    password = input(password:).strip()
    if r.get(username):
        print(用户已存在!)
    else:
        m = hashlib.md5(password.encode())
        new_password = m.hexdigest()
        r.set(username,new_password)
        print(注册成功!)

def login():
    username = input(username:).strip()
    password = input(password:).strip()
    p = r.get(username)
    if p:
        m = hashlib.md5(password.encode())
        new_password = m.hexdigest()
        if p == new_password:
            print(登录成功!)
        else:
            print(密码错误!)
    else:
      print(用户不存在!)


例子2:

#a redis  => b redis

#连上两个redis a b
#1、从a redis里面获取到所有key
#2、然后在从a里面取到key的value,set到b里面
import redis

a = redis.Redis(host=118.24.3.40,password=HK139bc&*,
                db=15,decode_responses=True) #0-16
b = redis.Redis(host=118.24.3.40,password=HK139bc&*,
                db=10,decode_responses=True) #0-16

for k in a.keys():
    if a.type(k) == string:
        value = a.get(k)
        b.set(k,value)
    elif a.type(k) == hash:
        all_data = a.hgetall(k)
        b.hmset(k,all_data)
    else:
        print(其他类型不支持!)

 接口开发

import flask
作用
1、mock(模拟)接口
2、给别人提供数据

flask 是web开发框架
import flask
import json
server = flask.Flask(__name__)#启动一个服务端

@server.route(/index)#装置器
def login():
    d = {"code":0,"msg":"登录成功 niuhanyangq111!"}
    return json.dumps(d,ensure_ascii=False)

server.run(host=0.0.0.0,port=8989,debug=True)#访问

 

原文:https://www.cnblogs.com/kexinwang/p/11141606.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!