Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Master list of Flask features we're missing #3

Closed
1 of 2 tasks
cpsievert opened this issue Sep 7, 2017 · 4 comments
Closed
1 of 2 tasks

Master list of Flask features we're missing #3

cpsievert opened this issue Sep 7, 2017 · 4 comments

Comments

@cpsievert
Copy link
Contributor

cpsievert commented Sep 7, 2017

Similar to dash, dasher takes a fiery (flask) server as input to the initialization method, and also exposes (modified version of) that server as a field, for example:

import flask
import dash

server = flask.Flask(__name__)
app = dash.Dash(__name__, server=server)
app.server # the flask server
library(fiery)
library(dasher)

server <- Fire$new()
app <- Dash$new(server = server)
app$server # the fiery server

This allows folks to add/customize functionality of the underlying web server, which is great, but is bound to lead to scenarios where something is possible/easy in flask, but isn't (yet) easy-to-do via fiery. This comment/issue serves as a 'master list' of those (currently known) features (which I'm hoping will help us organize/delegate/motivate @thomasp85 into implementing more fiery methods/plug-ins):

@cpsievert
Copy link
Contributor Author

@chriddyp I'm not super familiar with Flask, so if you think there is anything that is absolutely essential that may not be obvious from studying the dash ecosystem, please let me know!

@chriddyp
Copy link
Member

chriddyp commented Sep 7, 2017

I've tried to keep the list of flask specific things as small as possible.

AFAIK, users are only accessing the underlying web server (app.server) to:

  • Add additional HTTP routes like static file serving
  • Access the requests cookies (we can use this to allow developers to access the username of the logged-in viewer)

@cpsievert
Copy link
Contributor Author

cpsievert commented Sep 7, 2017

Great, seems like most of things are already doable given @thomasp85's fiery/routr/reqres framework.

@thomasp85
Copy link

Yeah - there're no deal breakers here - I'm planning to add standard authentication tools to firesafety, but if js dash uses a custom setup this will just have to be made custom in R as well...

fiery supports, automatic packing, unpacking of bodies using gzip, deflate, and brotli

fiery has no problem serving static content and routr even has a plugin route for mapping URL paths to subdirectories...

I have no experience with heroku so here we'll have to experiment - I cannot see why there should be any problems though (famous last words)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants