Skip to content

Instantly share code, notes, and snippets.

@ybw2016v
Last active December 9, 2021 11:51
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ybw2016v/773849eccdc530af3a57ba927acc9139 to your computer and use it in GitHub Desktop.
Save ybw2016v/773849eccdc530af3a57ba927acc9139 to your computer and use it in GitHub Desktop.
现在在用的基于flask的api
#!python3
import os.path as op
import json
from flask import Flask, abort, redirect, render_template, request, url_for
from flask_redis import FlaskRedis
from flask import jsonify
import os
from flask import send_from_directory
import random
from flask_restful import reqparse, abort, Api, Resource
app = Flask(__name__)
api = Api(app)
app.config['REDIS_URL']="redis://:@192.168.0.112:6379/1"
app.config['JSON_AS_ASCII'] = False
rc=FlaskRedis(app,decode_responses=True)
Apdog="API_KEY"
def ver(key):
if key==Apdog:
return "OK"
else:
return "Bad"
def vir_key(key):
if key==Apdog:
return True
else:
return False
class Dog(Resource):
def get(self):
cu=rc.llen('yl')
bbn=random.randint(0,cu-1)
ddd=rc.lindex('yl',bbn)
rc.incr("dognum")
# print(json.loads(ddd))
return jsonify({'id':bbn,'cnt':json.loads(ddd)})
def post(self):
et=request.form['key']
# print(et)
if ver(et)=="OK":
ty=request.form['c']
ty2=request.form['f']
ty3=request.form['url']
ssui=json.dumps({'c':ty,'f':ty2,'url':ty3},ensure_ascii=False)
sio=rc.rpush('yl',ssui)
ddd=rc.lindex('yl',sio-1)
# print(ddd)
return jsonify({'id':sio-1,'cnt':json.loads(ddd)})
# pass
else:
return "APIkey error"
def put(self):
et=request.form['key']
if ver(et)=="OK":
ty0=request.form['id']
ty=request.form['c']
ty2=request.form['f']
ty3=request.form['url']
ssui=json.dumps({'c':ty,'f':ty2,'url':ty3},ensure_ascii=False)
ddd=rc.lset('yl',int(ty0),ssui)
return jsonify(ddd)
else:
return "APIkey error"
def delete(self):
et=request.form['key']
if ver(et)=="OK":
ty0=request.form['id']
print(ty0)
ddd=rc.lindex('yl',int(ty0))
sti=rc.lrem('yl',0,ddd)
return jsonify(sti)
else:
return "APIkey error"
class AllDog(Resource):
def get(self):
cu=rc.llen('yl')
sh=rc.lrange('yl',0,cu-1)
tu=list(map(json.loads,sh))
# print(tu[0])
return jsonify(tu)
pass
class Dogkey(Resource):
def post(self):
ty=request.form['key']
print(ty)
if ty=="siuivcdog":
return "OK"
else:
return "Bad"
pass
class Dognum(Resource):
def get(self):
return rc.get("dognum")
class Talk(Resource):
def get(self,page=1):
# return jsonify({"page":page})
list_num = rc.llen('talk')
list_pages=rc.lrange('talk',(page-1)*10,page*10-1)
respons_cont=list(map(json.loads,list_pages))
return jsonify({'SunNumber':list_num,'ResCont':respons_cont})
def post(self,page=1):
api_key=request.form['key']
if vir_key(api_key):
post_time=request.form['time']
post_ua=request.form['ua']
post_avatar=request.form['avatar']
post_content=request.form['content']
post_name=request.form['name']
store_json=json.dumps({'time':post_time,'content':post_content,'avatar':post_avatar,'name':post_name,'ua':post_ua},ensure_ascii=False)
# store_json=json.dumps({'name':post_name},ensure_ascii=False)
push_res=rc.lpush('talk',store_json)
return jsonify({"status":"OK","res":push_res})
else:
return jsonify("ApiKey error")
def put(self,page=1):
api_key=request.form['key']
if vir_key(api_key):
put_id=request.form['id']
put_time=request.form['time']
put_ua=request.form['ua']
put_avatar=request.form['avatar']
put_content=request.form['content']
put_name=request.form['name']
store_json=json.dumps({'time':put_time,'content':put_content, 'avatar':put_avatar,'name':put_name,'ua':put_ua}, ensure_ascii=False)
put_res=rc.lset('talk',int(put_id),store_json)
return jsonify(put_res)
else:
return jsonify("ApiKey error")
def delete(self,page=1):
api_key=request.form['key']
if vir_key(api_key):
delete_id=request.form['id']
delete_content=rc.lindex('talk',int(delete_id))
delete_res=rc.lrem('talk',0,delete_content)
return jsonify(delete_res)
else:
return jsonify("ApiKey error")
api.add_resource(Dog, '/d')
api.add_resource(AllDog, '/ad')
api.add_resource(Dogkey, '/key')
api.add_resource(Dognum, '/n')
api.add_resource(Talk, '/talk/<int:page>','/talk','/talk/')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment