微信api中转站(用python搭建flask服务器)

这两天因为小程序的关系,引用的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的端口。操作超级稳准狠。。。


本人拙见,如果有什么不对的地方,望请各位大神多指点


猜你喜欢

转载自blog.csdn.net/Laozizuiku/article/details/79690170