这两天因为小程序的关系,引用的api必须是https的所以干脆自己建个服务器,本人小白,但好歹有点python的能力,基本是学点做点,哪不会就百度,基本都能找到答案。。。(话说第一次写博客,些许有点紧张。。。哈哈哈)
回到正题,用flask搭建服务器真的超级方便的,因为我只是需要将服务器当个中转站,所以没有什么画面可言,根本没写html的文件
直接上代码
from flask import Flask
from flask import request
from flask import send_file
import urllib
import urllib.request
import urllib.parse
import json
import pymysql
import os
from test import create_test
#conn = pymysql.connect(host='localhost',user='root',password="root",database="你的数据库名",charset="utf8")
#cursor = conn.cursor()
app = Flask(__name__)
@app.route('/',methods=['GET'])
def welcome():
return 'Hello World!'
@app.route('/tuling',methods=['GET'])
def welcome1():
return 'Hello World!'
#这个是服务器这边的图片可以被网络地址引用
@app.route('/get_image')
def get_image():
# 请求参数
file_name = request.args.get("id")
# 本地文件的全路径拼接(路径要改成自己的)
file_path = os.path.join('C:\\Users\\Administrator\\PycharmProjects\\API_ZhongZhuan', 'image', file_name)
# 向api返回(图片)文件
return send_file(file_path)
@app.route('/tuling',methods=['POST'])
def zhongzhuan_url():
# 配置您申请的APPKey
appkey = "8080asdf"#瞎写的
url = "http://www.tuling123.com/openapi/api"
# print(request.headers)
# print(request.form)
# print(request.form['info'])
user_txt = request.form['info']
user_id=request.form['userid']
user_nickname=request.form['username']
user_src=request.form['usersrc']
talk_jqr=request.form['talk_jqr']
# text, picture, video, time, timechuo, long_time,
picture=request.form['picture']
video=request.form['video']
time=request.form['time']
timechuo=request.form['timechuo']
long_time=request.form['long_time']
#因为我要存数据库,不需要直接删
##sql = 'insert ignore into users VALUES ("%s","%s","%s")' % (user_id,user_nickname,user_src)
#cursor.execute(sql)
#conn.commit()
if user_txt:
params = {
"key": appkey, # 您申请到的本接口专用的APPKEY
"info": user_txt, # 要发送给机器人的内容,不要超过30个字符
"dtype": "", # 返回的数据的格式,json或xml,默认为json
"loc": "", # 地点,如北京中关村
"lon": "", # 经度,东经116.234632(小数点后保留6位),需要写为116234632
"lat": "", # 纬度,北纬40.234632(小数点后保留6位),需要写为40234632
"userid": user_id, # 1~32位,此userid针对您自己的每一个用户,用于上下文的关联
}
params = urllib.parse.urlencode(params)
f = urllib.request.urlopen("%s?%s" % (url, params))
content = f.read().decode("UTF-8")
res = json.loads(content)
# print(content)
return_picture=''
return_video=''
#因为我要存进数据库,不需要的直接删掉
#zsql = 'insert ignore into jq VALUES ("%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s")'%(user_id,user_txt, picture, video,time,timechuo,long_time,talk_jqr,res['text'],return_picture,return_video)
# print(zsql)
#cursor.execute(zsql)
#conn.commit()
return content
else:
return "你好 我的小可爱"
# return "hello"
if __name__ == '__main__':
# app.debug = True
context = ('../Nginx/1_bundle.crt', '../Nginx/2_key.key')
app.run('0.0.0.0', port=443,threaded=True,ssl_context=context)
这其中不得不说是https的安装实在是太方便,看网上有很多nginx和iis啥的,一开始把我绕进去了,后来百度到直接这样两句,其中port=443,就是监控https的端口。操作超级稳准狠。。。
本人拙见,如果有什么不对的地方,望请各位大神多指点