[Flask] Need pointers to general introduction to web, frameworks

Corey Boyle coreybrett at gmail.com
Thu Sep 27 17:59:57 EDT 2018


A great way to have external services (Slack, Twilio, etc.) interact with
your code during development is to use a service like https://ngrok.com



__
Corey

On Thu, Sep 27, 2018, 5:52 PM Ernst, Kevin (ernstki) <ernstki at mail.uc.edu>
wrote:

> Hi Mike,
>
> You're probably already clear on this first part (the definition of a
> web server), but just to lead up to the explanation of why you need
> Flask for the demo app: a web server in this sense is a thing that runs
> one or more web applications, presents the "user interface" to those
> application as web pages to users' web browsers, and responds to users'
> interactions with those web pages.
>
> If you're familiar with HTML at all, you might know that you can
> double-click a .html file on your PC and that will open up in a web
> browser. That's called a "static" web page. No web server was
> necessarily required to deliver that to your browser, the web browser
> just opened the file off your hard drive. However, serving "static" web
> pages over a public URL on the Internet is one thing that web servers
> (in the Apache sense) can do.
>
> One other thing that a web server can do is to receive messages which
> represent users' interactions with the web pages it's responsible for
> serving, then communicate those interactions with *other* programs
> running on that computer (or another one), programs which are interested
> in performing actions based on those users' interactions. Like sending a
> password reset email, or fulfilling an order from an online checkout
> system.
>
> This is where you start hearing terms like "dynamic web pages," Ajax,
> and that sort of thing. You can add a <button> tag to a raw .html file,
> and the web browser will display that button, but the back-and-forth
> exchange of information that would happen when you *click* that button
> (e.g., fetching records from a database, submitting a credit card
> payment) happens by communicating with a web application, running on a
> web server.
>
> Now just expand the notion of "users' interactions" to also include web
> applications on the Internet communicating with each other. Like a Slack
> "bot" communicating with the Slack(.com) servers in order to post
> messages in a specific chat room / channel / whatever Slack calls them.
>
> This is where Flask comes in.
>
> Flask is a library that makes it easy to create a web application,
> which, when exposed to the public Internet, the Slack.com servers could
> communicate with in order to create notifications in Slack chat rooms.
>
> The sample code you found (the 'python-message-menu-example' project on
> GitHub) does exactly that--good find! When that project's README says
> "endpoints" for this or that, it means the Flask-based web application,
> exposed to the public Internet, for the Slack.com servers to communicate
> with. And in this case, the web application that creates those
> "endpoints" is referred to more specifically as a Slack "bot." And
> that's "bot" in the old Internet Relay Chat sense of a program that
> posts to a chat room in response to users' interactions, even though
> writing a program to do such a thing, in 2018, is a little more
> convoluted than it was, say, in 1998.
>
> Flask is also relatively popular because it includes its own lightweight
> "development server," a built-in web server, which can simplify the
> process of getting simple, low-volume web applications up-and-running,
> because it absolves you the complexity of running Apache or Gunicorn, or
> really any other software except for Python.
>
> There are lots of reasons why you *might* choose to run your
> Python-plus-Flask web application within a high-performance web
> application server environment like Apache with mod_wsgi or Gunicorn,
> rather than using the Flask development server, but for this little
> Slack bot application, those reasons don't apply to you.
>
> The thing is, for this 'python-message-menu-example' Slack bot to work,
> the Flask "application" (in the sense of the "endpoints" for Slack.com
> to communicate with) would need to run on a computer with more-or-less
> direct access to the Internet. As in the ability to expose
> communications ports to other clients on the public Internet. You are
> likely to have problems trying to get the bot to communicate with
> Slack(.com) unless you are ready to mess with your wifi router's settings.
>
> If you're not able to run this Flask app on a publicly-accessible
> server, maybe one that your friend has access to, I recommend looking
> into the hosting service pythonanywhere.org.
>
> Hope this helps.
>
> --Kevin
>
>
> P.S.
>
> Since I'm replying to a Mailman digest, it's likely this reply isn't
> going to show up inside the original message thread in the archives[1].
> Sorry 'bout that.
>
> [1]: https://mail.python.org/pipermail/flask/2018-September/thread.html
>
>
> On 9/27/18 12:00 PM, flask-request at python.org wrote:
> >
> > thanks, all.
> >
> > I know this isn't purely a Flask question, but I think it's closely
> related
> > or will help me understand Flask. If this is completely off-topic, please
> > ignore.
> >
> > What I'm not clear on... how do I get this demo app (Flask + Slack) to
> > work? Am I supposed to host a Slack server or an Apache server or
> something
> > like that on my local machine, or does this work with slack.com, or
> > something else? Is there something about using Flask that I supposed to
> > understand?
> >
> _______________________________________________
> Flask mailing list
> Flask at python.org
> https://mail.python.org/mailman/listinfo/flask
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/flask/attachments/20180927/388d26de/attachment-0001.html>


More information about the Flask mailing list