pravin4659
pravin4659

Reputation: 181

How to send http request to python flask server from desktop application?

I have configured python server using flask framework. Now I want to send request to server from my desktop application. My server location is : http://127.0.0.1:5000/

I have written code which work from browser but i want to access that code from my desktop app.

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()

Upvotes: 5

Views: 3114

Answers (2)

codecool
codecool

Reputation: 6046

You have to use a python library to access the url from the desktop app.

Try requests module. It makes working with http request easy and describes itself as an elegant and simple HTTP library for Python, built for human beings.

Sample code:

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

Upvotes: 7

C&#233;dric Julien
C&#233;dric Julien

Reputation: 80801

Did you try to use the python standard library httplib ?

Or the even better httplib2.

Here is a GET test (inspired by httplib2 examples) :

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

Upvotes: 4

Related Questions