zoukankan      html  css  js  c++  java
  • 在Pyhon中使用:网络编程 & 接口开发

    1. 网络编程

     1 import json
     2 from urllib.request import urlopen
     3 from urllib.parse import urlencode
     4 import requests
     5 
     6 #get请求
     7 url = "http://127.0.0.1:8888/get?name=cddd"
     8 req = urlopen(url)
     9 result = json.loads(req.read().decode())
    10 print(result)
    11 
    12 #post请求
    13 url = "http://127.0.0.1:8888/get"
    14 data = {"name":"post"}
    15 #name=xxx
    16 req = urlopen(url,urlencode(data).encode())
    17 print(req.read().decode())
    18 
    19 #get
    20 url = "http://127.0.0.1:8888/get"
    21 data = {"name":"呵呵"}
    22 req = requests.get(url=url,params=data)
    23 
    24 #post
    25 url = "http://127.0.0.1:8888/get"
    26 data = {"name":"呵呵呵呵"}
    27 req = requests.post(url,data=data,params={"xx":"xx"})
    28 # params=xx,参数是传在url后面的
    29 # data=xxx,参数是传在body里面的form-data的
    30 
    31 #header、cookie
    32 url = "http://127.0.0.1:8888/header"
    33 # req = requests.post(url,headers={"name":"xiaoming"},cookies={"time":"123456","time2":"666666"})
    34 req = requests.post(url,headers={"name":"xiaoming","cookie":"time=123456;time2=666666"})
    35 
    36 #入参是json的
    37 url = "http://127.0.0.1:8888/json"
    38 data = {"age":36,"name":"呵呵呵呵","sex":1111}
    39 req = requests.post(url,json=data)
    40 
    41 #文件上传
    42 url = "http://127.0.0.1:8888/file"
    43 files = {"file":open("/Users/nhy/Desktop/linux.emmx",'rb')}
    44 req = requests.post(url,files=files)
    45 
    46 #文件下载
    47 url = "https://q4.qlogo.cn/g?b=qq&nk=1357396742&s=140"
    48 req = requests.get(url)
    49 with open("lby.jpg",'wb') as fw:
    50     fw.write(req.content)
    51 
    52 #返回值类型转换
    53 print(req.status_code) #返回的http状态码
    54 print(req.json() ) #直接把返回的数据转成字典
    55 print(req.text) #返回的是字符串
    56 print(req.content) #返回的是bytes类型的
    57 print(req.cookies) #返回的cookie
    58 print(req.headers) #响应头

    2. 接口开发

     1 import flask
     2 import json
     3 import CS2
     4 server = flask.Flask(__name__)
     5 
     6 
     7 @server.route('/api/user',methods=['post','get'])
     8 def user_info():
     9     d = {"id":3,"username":"CHJ"}
    10     return json.dumps(d,ensure_ascii=False)
    11 
    12 #get
    13 @server.route('/get',methods=['get'])
    14 def user2():
    15     name = flask.request.values.get("name")
    16     data  = {"name":name}
    17     return json.dumps(data,ensure_ascii=False)
    18 
    19 #header,cookie
    20 @server.route('/header',methods=['get','post'])
    21 #这个接口是为了说明怎么获取cooke,获取header的
    22 def user3():
    23     name = flask.request.headers.get("name") #从header里面获取数据
    24     time = flask.request.cookies.get("time") #cookie获取数据
    25     data  = {"name":name,'time':time}
    26     return json.dumps(data)
    27 
    28 #json
    29 @server.route('/json',methods=['post'])
    30 def user4():
    31     if flask.request.is_json:
    32         age = flask.request.json.get("age")
    33         name = flask.request.json.get("name")
    34         sex = flask.request.json.get("sex")
    35         data = {"age":age,"sex":sex,"name":name}
    36     else:
    37         data = {"code":-1,"msg":"入参不是json"}
    38 
    39     return json.dumps(data,ensure_ascii=False)
    40 
    41 #文件上传
    42 @server.route('/file',methods=['post'])
    43 def user5():
    44     file = flask.request.files.get("file")
    45     file.save(file.filename)
    46     return json.dumps({"code":0,"msg":"上传成功"},ensure_ascii=False)
    47 
    48 #数据库查询
    49 #user、stu_hua
    50 #table_name=user
    51 #/table_data?table_name=
    52 @server.route('/table_data')
    53 def table_data():
    54     table_names = ['user','CHJ_UserName']
    55     table_name = flask.request.values.get('table_name') #table_name=stu+salt
    56     # table_name = flask.request.values.get('sign') #sdgsdsdgsgds
    57     if table_name:
    58         if table_name in table_names:
    59             sql = 'select * from %s;' % table_name
    60             result = CS2.execute_sql(sql)
    61             data = {"code":0,"msg":"成功","data":result}
    62             return json.dumps(data, ensure_ascii=False)
    63         else:
    64             return json.dumps({"code":-1,"msg":"没有查询该表的权限"},ensure_ascii=False)
    65 
    66     return json.dumps({"code":-1,"msg":"请传入table_name"},ensure_ascii=False)
  • 相关阅读:
    【leetcode】538/1038: 把二叉搜索树转化为累加树
    k8s-nginx二进制报Illegal instruction (core dumped)
    k8s-记一次安全软件导致镜像加载失败
    Ubuntu1804下k8s-CoreDNS占CPU高问题排查
    Ubuntu 18.04 永久修改DNS的方法
    NLP资源
    《转载》14种文本分类中的常用算法
    PyCharm 使用技巧
    python模块包调用问题
    强化学习(8)------动态规划(通俗解释)
  • 原文地址:https://www.cnblogs.com/huajie-chj/p/14414600.html
Copyright © 2011-2022 走看看