如何设置代理Web服务器以在没有Web框架的pythonanywhere上转发请求

时间:2014-11-05 17:16:49

标签: python web-frameworks pythonanywhere basehttprequesthandler

我编写了一个小型桌面应用程序(python 2.7,tkinter),它使用了一个我想保证安全的API密钥 - 即不要将它保存在源python文件中。建议的方法是让应用程序向Web服务器发送请求(我将使用pythonanywhere),使用API​​密钥(使用相关URL),这将返回JSON数据到应用程序(通过服务器)当然)。 我想可以在不使用Django / Flask / etc的情况下做到这一点,它似乎在BaseHTTP ...模块中有所帮助。但是,我对网络编程完全不熟悉,所以我有很多不明白的地方。我想要帮助的一些事情是:

  1. 如果我在主站点文件夹中添加一些随机代码(比如/somefile.py),对http://www.example.com/的请求是否会自动运行somefile.py?这似乎不太可能,我在哪里可以读到这个?我的文件需要特殊名称吗?还是只是参考?给他们

  2. 我是否需要一个实际的“可访问”页面?

  3. 总之,有人能指出我上述问题的必要步骤的记录,甚至是我在搜索中可能忽略的一些可用解决方案吗?我已经看到了本地运行的BaseHTTPserver的例子,但是我不确定如何在pythonanywhere类型的环境中让一个人在线工作。

    示例:

    http://www.acmesystems.it/python_httpserver

    http://effbot.org/librarybook/simplehttpserver.htm

    关于端口,这可能是相关的:Using PythonAnywhere as a game server

    而且,我刚刚发现了这个:http://pythonpaste.org/do-it-yourself-framework.html


    对于任何想要完整示例的人(如果上述内容不够清晰): 有人可能想检查配置文件“配置文件”的数据。 我的应用会发送一个像

    这样的请求

    http://mypage.pythonanywhere.com/https://euw.api.pvp.net/api/lol/euw/v1.3/stats/by-summoner/Profile/ranked?season=SEASON4&

    (或只是http://mypage.pythonanywhere.com/stats-by-summoner/Profile/ranked?season=SEASON4,在修改后的BaseHTTPrequesthandler类中添加了其他内容),这将把它变成:

    http://mypage.pythonanywhere.com/https://euw.api.pvp.net/api/lol/euw/v1.3/stats/by-summoner/Profile/ranked?season=SEASON4& api_key = my_api_key_here

1 个答案:

答案 0 :(得分:4)

PythonAnywhere使用WSGI在您的代码和Web服务器之间进行通信。您可以直接编写WSGI应用程序,但框架可以使其更容易。 Flask和Bottle非常容易学习,并且不会引入太多开销。他们也有很好的教程可以帮助你入门。