I want to execute a python programme whenever the user clicks on any of the buttons from the django submit_line.html page.
I have tried using variations of the following:
onclick="python script.py"
onclick="/usr/bin/python /home/django/project/script.py"
onclick="python ../../script.py"
but I can't get the script to run.
Does anyone know of any solutions to my problem?
Thanks for your time.
If instantly: use javascript.
If by refreshing the page: just use requests and write your Python code as function in views.py
You don't seem to have understood anything from the Django tutorial or documentation.
In Django, you access the server-side functionality via URLs, which are served by views. You don't reference a Python script directly in your template, you reference a URL which maps to a view, and your Python code goes in that view.
Quite apart from that, onclick is Javascript. You can't just reference a Python script, that makes no sense. You can write a Javascript function to call (via Ajax) a URL which does what you want, or more simply make it a link to that URL.
Related
I have created a button in HTML , i want to invoke a external python script when that button is clicked.
and also pass on some variables into that python script if possible.
which method would be the simplest and fastest.
TIA
I tried flask but that didnt help me, my html code is being hosted on apache. i cannot / shouldn't (maybe) use flask
If you are not using Flask, you can use Django. If you don't want to use Django either, you can use ajax to call the script as Fastnlight has shown above.
In case that does not work, you can use "py-script". It is like javascript. It is in experimental phase but can do simple tasks in your browser window.
link to pyscript: https://pyscript.net/
I have a button next to some text on a page. I'd like to execute some Python code if that button is pressed. The only way I know how to do this is through a view. The thing is, I need the page not to redirect or refresh or anything, just some code to execute when the button is pressed. Any ideas on how I'd get this done?
Asynchronous Javascript and XML (Ajax).
You can perform an Ajax request to the view you want to execute and this will be done without refreshing nor redirecting the current web page.
This is the W3C Ajax tutorial which might be good for beginners. All you have to do is code some javascript in your templates, add the onclick event listener to your button and you're up :)
You may take a look at this tutorials and documentation, seems very apropiate.
Hope this helps!
When button is clicked you can use javascript to make an async request (AJAX) to your django project
typing in django ajax to google shows a lot of resources, one of which is a beginners tutorial:
http://lethain.com/two-faced-django-part-5-jquery-ajax/
Here's the link: http://nikeplus.nike.com/plus/
The email/password option only shows when I click "Log in" button. So how to use python to log into this website?
I tried twill and got the forms on the page but it includes only the search bar. So not sure how to proceed
While not a python solution, I wrote a PHP class that actually lets you get the data from the Nike+ website: https://nikeplusphp.charanj.it
The class works by faking the login on the website and then makes requests to the feeds. If you look through the code you'll find all the URLs to make the necessary GET requests and there is a method called _login() and this should give you an idea of what parameters are posted.
Am new to Django but want to learn it and have covered pretty much the basics on the Django website.
Here is my problem:
I have written a python script which presently works in the python shell, but I want to make use of the script on my web. So that when a user goes to my website and provides the neccesary input, clicks submit, the webpage links the input to the python script(which already has input fields like those on the webpage), and the python script runs according to the input given by the user, evaluates it and prints the result of the script on the webpage.
Please help me out guys, counting on you all.
But feel free to suggest other frameworks that could best serve my problem.
It sounds like you would be better off moving the contents of your script into a django view and executing it after your form has been validated.
https://docs.djangoproject.com/en/dev/topics/forms/?from=olddocs#using-a-form-in-a-view
In your view, you can get the form data using request object. You can pass the form values to your script and send output to your response object.
It seems you didn't completely understand how django works. Please go through the tutorial again.
I have a python script that, once executed from command line, performs the needed operations and exit. If, during the execution, the program is not able to perform a choice, he prompts the user and asks them to take a decision!
Now I have to implement a web interface, and here comes the problems ... I created an htm file with a simple form that, once the user "submits" he passes the parameters to a cgi script that contains just one line and runs my python program ! And it seems to work.
My question is: if it happens that the program needs to ask the user for a choice, how can I return this value to my python script? To prompt the user for a choice I need to create a webpage with the possible choices ... Does anybody know how can I open a webpage with python ?
The second and most important question is: how can I return a value from a web page to my "original" python module? In python I would simply make a
return choice
but with a web page I have no idea how to do it.
Recap:
Starting from a web page, I run a cgi script ! Done
This CGI script runs my python program... Done
If the program is not able to take a decision,
3a create a web page with the possible choices I can do it
3b display the created web page ????????
3c return the response to the original python module ????????
"Does anybody know how can I open a webpage with python ? The second and most important question is: how can I return a value from a web page to my "original" python module ??"
This is all very simple.
However, you need to read about what the web really is. You need to read up on web servers, browsers and the HTTP protocol.
Here's the golden rule: A web server responds to HTTP requests with a web page.
The second part of that rules is: A Request is a URL and a method (GET or POST). There's more to a request, but that's the important part.
That's all that ever happens. So, you have to recast your use case into the above form.
Person clicks a bookmark; browser makes an empty request (to a URL of "/") and gets a form.
Person fills in the form, clicks the button; browser POST's the request (to the URL in the form) and gets one of two things.
If your script worked, they get their page that says it all worked.
If your script needed information, they get another form.
Person fills in the form, clicks the button; browser POST's the request (to the URL in the form) and gets the final page that says it all worked.
You can do all of this from a "CGI" script. Use mod_wsgi and plug your stuff into the Apache web server.
Or, you can get a web framework. Django, TurboGears, web.py, etc. You'll be happier with a framework even though you think your operation is simple.
I think you could modify the Python script to return an error if it needs a choice and accept choices as arguments. If you do that, you can check the return value from your cgi script and use that to call the python script appropriately and return the information to the user.
Is there a reason why you can't call the python script directly? I suspect you'd end up with a neater implementation if you were to avoid the intermediate CGI.
What webserver are you using? What cgi language? Perl maybe?
Web pages don't return values, and they aren't programs - a web page is just a static collection of HTML or something similar which a browser can display. Your CGI script can't wait for the user to send a response - it must send the web page to the user and terminate.
However, if the browser performs a second query to your CGI program (or a different CGI program) based on the data in that page, then you can collect the information that way and continue from that point.
Probably easier if you write your cgi in python then call your python script from the cgi script.
Update your script to separate the UI from the logic.
Then it should be relatively easy to interface your script with the (python) cgi script.
For python cgi reference:
Five minutes to a Python CGI
http://docs.python.org/library/cgihttpserver.html
I think first off you need to separate your code from your interface. When you run a script, it spits out a page. You can pass arguments to it using url parameters. Ideally you want to do your logic, and then pass the results into a template that python prints to the cgi.