如何从桌面应用程序向python flask服务器发送http请求?

时间:2012-07-10 07:43:37

标签: python python-2.7 flask flask-sqlalchemy

我使用flask框架配置了python服务器。 现在我想从桌面应用程序向服务器发送请求。 我的服务器位置是:http://127.0.0.1:5000/

我编写的代码可以在浏览器中运行,但我想从我的桌面应用程序访问该代码。

import flask,flask.views import os import functools 
app=flask.Flask(__name__)

app.secret_key="xyz" users={'pravin':'abc'}
class Main(flask.views.MethodView):
    def get(self):
        return flask.render_template('index.html')
    def post(self):
        if 'logout' in flask.request.form:
            flask.session.pop('username',None)
            return flask.redirect(flask.url_for('index'))
        required=['username','passwd']
        for r in required:
        if r not in flask.request.form:
            flask.flash("Error: {0} is required.".format(r))
            return flask.redirect(flask.url_for('index'))

        username=flask.request.form['username']
        password=flask.request.form['passwd']
        if username in users and users[username]==password:
            flask.session['username']=username
        else:
            flask.flash("Username doesn`t exist or incorrect password.")

        return flask.redirect(flask.url_for('index'))

app.add_url_rule("/",view_func=Main.as_view("index"),methods=["GET","POST"])
app.debug=True
app.run()

2 个答案:

答案 0 :(得分:6)

您必须使用python库从桌面应用程序访问该URL。

试试requests module。它使得轻松处理http请求并将其自身描述为an elegant and simple HTTP library for Python, built for human beings.

示例代码:

    >>> r = requests.get('http://127.0.0.1:5000')
    >>> r.status_code
        <Response [200]>

答案 1 :(得分:4)

您是否尝试使用python标准库httplib

或者更好httplib2

以下是GET测试(受httplib2 examples启发):

import httplib2
h = httplib2.Http()
resp, content = h.request("http://127.0.0.1:5000/")