Python - open specific url on local machine from app on remote host - python

I packaged a python streamlit app on Azure App Service. A button of the app wants to point to an external PowerBI dashboard.
What I want to achieve is to make the button (in the app running on App Service, so on a remote host) open a new tab or browser window on the local machine from which the remote app is accessed.
I think the right way to do this is to use the webbrowser.open_new_tab() function, but I can't understand how to exactly use this.
The url that I need to open from within the app is in the form https://app.powerbi.com/links/....
This is a related question that shares a similar setting, but I think that the goal there is not exactly the same, because I do not want to access some service on my local machine (deduced from the url that points to <ip-localhost>:8080), but I just want to open a new internet page on my local machine.

Related

make flask application work for certain perio similar to trail software

I'm currently developing flask application for a client and i want to give him/her to test it in there local machine. Issue is that i don't have internet connect or remote access in their system so I'm forced to add all source code i did to their system. i want to know is there a way i can give the client flask application without providing him/her with source code.
My objective is to make source code hidden of flask application whether it by executable file or have 30days for testing and after 30days application will automatically be deleted or disabled from their system it similar how trial application work.
If anyone can guide me into how can i make source code of flask hidden from client when i don't have any access to PC or internet that flask application is installed in

Flask webapp deployed on IIS does not serve network folder files

Firstly this is my debut query on stack overflow , hope i have maintained the required protocols.
Have a flask app running on Windows 2012.
I have a simple flask app which serves local and network files (.pdf,.csv). When i run the flask app thru' terminal it is able to serve both Local and network files when the embedded url is clicked .The files open in a new tab.
But when i launch it thru IIS, it is only able to serve local files and throws access denied messages[Error 13] whenever the network file url is clicked
Have been breaking my head over it.
Any help is appreciated.
Trying to change the identity to Network Service.

How to deploy flask GUI web application only locally with exe file?

I'd like to build a GUI for a few Python functions I've written that pull data from MS SQL Server. My boss wants me to share the magic of Python & SQL with the rest of the team, without them having to learn any coding.
I've decided to go down the route of using Flask to create a webapp and creating an executable file using pyinstaller. I'd like it to work similarly to Jupyter Notebook, where you click on the file and it opens the notebook in your browser.
I was able to hack together some code to get a working prototype of the GUI. The issue is I don't know how to deploy it. I need the GUI/Webapp to only run on the local computer for the user I sent the file to, and I don't want it accessible via the internet (because of proprietary company data, security issues, etc).
The only documentation I've been able to find for deploying Flask is going the routine route of a web server.
So the question is, can anyone provide any guidance on how to deploy my GUI WebApp so that it's only available to the user who has the file, and not on the world wide web?
Thank you!
So, a few assumptions-- since you're a business and you're rocking a SQLServer-- you likely have Active Directory, and the computers that you care to access this app are all hooked into that domain (so, in reality, you, or your system admin does have full control over those computers).
Also, the primary function of the app is to access a SQLServer to populate itself with data before doing something with that data. If you're deploying that app, I'm guessing you're probably also including the SQLServer login details along with it.
With that in mind, I would just serve the Flask app on the network on it's own machine (maybe even the SQLServer machine if you have the choice), and then either implement security within the app that feeds off AD to authenticate, or just have a simple user/pass authentication you can distribute to users. By default random computers online aren't going to be able to access that app unless you've set your firewalls to deliberately route WAN traffic to it.
That way, you control the Flask server-- updates only have to occur at one point, making development easier, and users simply have to open up a link in an email you send, or a shortcut you leave on their desktop.
Unfortunately, you do not have control over a give users computer.
You are using flask, so your application is a web application which will be exposing your data to some port. I believe the default flask port is 5000.
Regardless, if your user opens the given port in their firewall, and this is also open on whatever router you are connected to, then your application will be publicly visible.
There is nothing that you can do from your python application code to prevent this.
Having said all of that, if you are running on 5000, it is highly unlikely your user will have this port publicly exposed. If you are running on port 80 or 8080, then the chances are higher that you might be exposing something.
A follow up question would be where is the database your web app is connecting to? Is it also on your users machine? If not, and your web app can connect to it regardless of whose machine you run it on, I would be more concerned about your DB being publicly exposed.

Working locally on web-application

I have been added as developer on application.
On Applications Overview this app is shown together with my other app, that I can freely access and change via Google App Engine Launcher.
Question is how to get app I'm supposed to work on my computer locally(in other words in GAE), so I can test and change it locally in the browser on my computer...
Windows 7
App Engine SDK-release: "1.7.6"
API: python27
You can use the appcfg application (the one that handle uploads) to download the source code.
This only works if the administrator has not disabled it.
However, it would be better to ask the developpers to provide you with the original source code !

Distributing a local Flask app

I've made a simple Flask app which is essentially a wrapper around sqlite3. It basically runs the dev server locally and you can access the interface from a web browser. At present, it functions exactly as it should.
I need to run it on a computer operated by someone with less-than-advanced computing skills. I could install Python on the computer, and then run my .py file, but I am uncomfortable with the files involved being "out in the open". Is there a way I can put this app into an executable file? I've attempted to use both py2exe and cx_freeze, but both of those raised an ImportError on "image". I also tried zipping the file (__main__.py and all that) but was greeted with 500 errors attempting to run the file (I am assuming that the file couldn't access the templates for some reason.)
How can I deploy this Flask app as an executable?
Host it.
Since you created it in Flask, and its a web app - hosting it should be trivial. Dump it on any of the PaaS providers like Heroku, Google App Engine, OpenShift or spin up a micro instance on EC2 and host it there.
Creating an executable is not the solution.
Why distribute it at all? If the user you want to use it is on the same local network as the Flask application, just give them the IP address and they can access it via a browser just as you are doing, and no access to the source code either!

Categories

Resources