Python 用于回调的本地服务器 URL

Python Local Server For Callback URL

我正在开发一个 oauth 项目,该项目要求我有一个回调 url,可以在成功授权后加载该回调以请求访问令牌,但我不确定如何 运行 该服务器以正确的方式。我熟悉有用的单行 python 服务器设置 python -m http.server,但这只会加载我启动服务器的目录,并充当在该目录中导航文件的服务器。

是否有更好的方法来设置可用于此重定向过程并进行我需要的额外服务器调用的简单服务器?我需要使用像 Django 这样的网络框架吗?

使用 python -m http.server 您只能提供静态文件,但您需要 运行 一些获取参数并使用它的代码。

您可以在 python -m http.server --cgi 中使用选项 --cgi 然后您可以将脚本(任何语言)放入文件夹 cgi-bin 和 运行 http://localhost/cgi-bin/script.py .

但是 CGI 的方法非常古老,使用一些网络 microframework 会容易得多,比如 Flaskbottle

script.py

from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def index():
    print('args:', request.args)  # display text in console
    #print('form:', request.form)
    #print('data:', request.data)
    #print('json:', request.json)
    #print('files:', request.files)
    
    return request.args.get('data', 'none')  # send text to web browser

if __name__ == '__main__':
    app.run(port=80, debug=True)

和运行它作为python script.py并在网络浏览器中测试

http://127.0.0.1/?data=qwerty

request.args.get("data") 应该会给你 qwerty,你可以在 Python 代码中使用它。