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)