executing while loop and simultaneously redirecting to new page on form submission

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

executing while loop and simultaneously redirecting to new page on form submission

Peter Tsapatsaris
Hello everyone,

I've been using cherrypy on a Raspberry Pi to run a web controllable LED matrix.  I've run into a bit of a wall.  Short version of question: Is it possible to send the user to a new webpage in a function WITHOUT returning or breaking?  I am trying to execute code in a block below the redirect. 

Long version:

The LED control code executes on a while loop after receiving input from an an HTML form like the following:

    <form name="myform" class="rounded" action="ledDisplay" method="GET" onsubmit="archive.html">         
        <input type="text" class="box" name="message" maxlength="1000" placeholder="enter your message" />
        <input type="submit">
    </form>

The ledDisplay function executes the while loop with the message from the form.  My problem is this--after submission, I would like to redirect the user to a new webpage (e..g, "thanks.html").  However, when I redirect it either executes BEFORE the while loop, thus preventing the LED from running, or executes AFTER the while loop, i.e., never.  

Does anyone know if there is a way to get CherryPy to send the user to a new webpage and then continue to execute a code block?  Here is a skeleton of the code I'm working with:

class myApp:
def index(self):
return open('index.html')
index.exposed = True
def ledDisplay(self, message):

if message:
raise cherrypy.HTTPRedirect("thanks.html") /* This prevents the loop from executing.  Any way to open the page and still execute the loop*/
 
while True:
                               //Execute LED code on loop.
Apologies if I'm being obtuse - I am new to programming. 

--
You received this message because you are subscribed to the Google Groups "cherrypy-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/cherrypy-users.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: executing while loop and simultaneously redirecting to new page on form submission

cherrypy-users mailing list
Hi,

this is a typical use case for multi-threaded programming.

Your web interface just  sets a variable (protected by a mutex), and a background  thread does the LED output.

Björn

Am Donnerstag, 13. Oktober 2016 07:44:03 UTC+2 schrieb Peter Tsapatsaris:
Hello everyone,

I've been using cherrypy on a Raspberry Pi to run a web controllable LED matrix.  I've run into a bit of a wall.  Short version of question: Is it possible to send the user to a new webpage in a function WITHOUT returning or breaking?  I am trying to execute code in a block below the redirect. 

Long version:

The LED control code executes on a while loop after receiving input from an an HTML form like the following:

    <form name="myform" class="rounded" action="ledDisplay" method="GET" onsubmit="archive.html">         
        <input type="text" class="box" name="message" maxlength="1000" placeholder="enter your message" />
        <input type="submit">
    </form>

The ledDisplay function executes the while loop with the message from the form.  My problem is this--after submission, I would like to redirect the user to a new webpage (e..g, "thanks.html").  However, when I redirect it either executes BEFORE the while loop, thus preventing the LED from running, or executes AFTER the while loop, i.e., never.  

Does anyone know if there is a way to get CherryPy to send the user to a new webpage and then continue to execute a code block?  Here is a skeleton of the code I'm working with:

class myApp:
def index(self):
return open('index.html')
index.exposed = True
def ledDisplay(self, message):

if message:
raise cherrypy.HTTPRedirect("thanks.html") /* This prevents the loop from executing.  Any way to open the page and still execute the loop*/
 
while True:
                               //Execute LED code on loop.
Apologies if I'm being obtuse - I am new to programming. 

--
You received this message because you are subscribed to the Google Groups "cherrypy-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/cherrypy-users.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: executing while loop and simultaneously redirecting to new page on form submission

Peter Tsapatsaris
Thanks for the reply Björn - I am attempting to start a new thread in python that redirects to the webpage, but no luck so far.

def index(self):
return open('index.html')
index.exposed = True
def ledDisplay(self, message):
if message:
def newFunc():
raise cherrypy.HTTPRedirect("thanks.html")
thread.start_new_thread(newFunc, ()) 
while True:
                               //Execute LED code on loop.

The LED code gets executed, but the redirect doesn't happen.  I can get other code within newFunc to run (like a print statement), but I can't get it to redirect.  The server throws an unhandled exception error.

Any additional advice would be greatly appreciated!

On Thursday, October 13, 2016 at 3:24:27 AM UTC-4, Björn Pedersen wrote:
Hi,

this is a typical use case for multi-threaded programming.

Your web interface just  sets a variable (protected by a mutex), and a background  thread does the LED output.

Björn

Am Donnerstag, 13. Oktober 2016 07:44:03 UTC+2 schrieb Peter Tsapatsaris:
Hello everyone,

I've been using cherrypy on a Raspberry Pi to run a web controllable LED matrix.  I've run into a bit of a wall.  Short version of question: Is it possible to send the user to a new webpage in a function WITHOUT returning or breaking?  I am trying to execute code in a block below the redirect. 

Long version:

The LED control code executes on a while loop after receiving input from an an HTML form like the following:

    <form name="myform" class="rounded" action="ledDisplay" method="GET" onsubmit="archive.html">         
        <input type="text" class="box" name="message" maxlength="1000" placeholder="enter your message" />
        <input type="submit">
    </form>

The ledDisplay function executes the while loop with the message from the form.  My problem is this--after submission, I would like to redirect the user to a new webpage (e..g, "thanks.html").  However, when I redirect it either executes BEFORE the while loop, thus preventing the LED from running, or executes AFTER the while loop, i.e., never.  

Does anyone know if there is a way to get CherryPy to send the user to a new webpage and then continue to execute a code block?  Here is a skeleton of the code I'm working with:

class myApp:
def index(self):
return open('index.html')
index.exposed = True
def ledDisplay(self, message):

if message:
raise cherrypy.HTTPRedirect("thanks.html") /* This prevents the loop from executing.  Any way to open the page and still execute the loop*/
 
while True:
                               //Execute LED code on loop.
Apologies if I'm being obtuse - I am new to programming. 

--
You received this message because you are subscribed to the Google Groups "cherrypy-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/cherrypy-users.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: executing while loop and simultaneously redirecting to new page on form submission

cherrypy-users mailing list
Do it the other way around:
 start the LED code in a thread and do the redirect in the main code.

Am Donnerstag, 13. Oktober 2016 16:07:03 UTC+2 schrieb Peter Tsapatsaris:
Thanks for the reply Björn - I am attempting to start a new thread in python that redirects to the webpage, but no luck so far.

def index(self):
return open('index.html')
index.exposed = True
def ledDisplay(self, message):
if message:
def newFunc():
raise cherrypy.HTTPRedirect("thanks.html")
thread.start_new_thread(newFunc, ()) 
while True:
                               //Execute LED code on loop.

The LED code gets executed, but the redirect doesn't happen.  I can get other code within newFunc to run (like a print statement), but I can't get it to redirect.  The server throws an unhandled exception error.

Any additional advice would be greatly appreciated!

On Thursday, October 13, 2016 at 3:24:27 AM UTC-4, Björn Pedersen wrote:
Hi,

this is a typical use case for multi-threaded programming.

Your web interface just  sets a variable (protected by a mutex), and a background  thread does the LED output.

Björn

Am Donnerstag, 13. Oktober 2016 07:44:03 UTC+2 schrieb Peter Tsapatsaris:
Hello everyone,

I've been using cherrypy on a Raspberry Pi to run a web controllable LED matrix.  I've run into a bit of a wall.  Short version of question: Is it possible to send the user to a new webpage in a function WITHOUT returning or breaking?  I am trying to execute code in a block below the redirect. 

Long version:

The LED control code executes on a while loop after receiving input from an an HTML form like the following:

    <form name="myform" class="rounded" action="ledDisplay" method="GET" onsubmit="archive.html">         
        <input type="text" class="box" name="message" maxlength="1000" placeholder="enter your message" />
        <input type="submit">
    </form>

The ledDisplay function executes the while loop with the message from the form.  My problem is this--after submission, I would like to redirect the user to a new webpage (e..g, "thanks.html").  However, when I redirect it either executes BEFORE the while loop, thus preventing the LED from running, or executes AFTER the while loop, i.e., never.  

Does anyone know if there is a way to get CherryPy to send the user to a new webpage and then continue to execute a code block?  Here is a skeleton of the code I'm working with:

class myApp:
def index(self):
return open('index.html')
index.exposed = True
def ledDisplay(self, message):

if message:
raise cherrypy.HTTPRedirect("thanks.html") /* This prevents the loop from executing.  Any way to open the page and still execute the loop*/
 
while True:
                               //Execute LED code on loop.
Apologies if I'm being obtuse - I am new to programming. 

--
You received this message because you are subscribed to the Google Groups "cherrypy-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/cherrypy-users.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: executing while loop and simultaneously redirecting to new page on form submission

Peter Tsapatsaris
That did the trick.  You are a true gentleman and a scholar. Thank you.

On Thursday, October 13, 2016 at 10:59:28 AM UTC-4, Björn Pedersen wrote:
Do it the other way around:
 start the LED code in a thread and do the redirect in the main code.

Am Donnerstag, 13. Oktober 2016 16:07:03 UTC+2 schrieb Peter Tsapatsaris:
Thanks for the reply Björn - I am attempting to start a new thread in python that redirects to the webpage, but no luck so far.

def index(self):
return open('index.html')
index.exposed = True
def ledDisplay(self, message):
if message:
def newFunc():
raise cherrypy.HTTPRedirect("thanks.html")
thread.start_new_thread(newFunc, ()) 
while True:
                               //Execute LED code on loop.

The LED code gets executed, but the redirect doesn't happen.  I can get other code within newFunc to run (like a print statement), but I can't get it to redirect.  The server throws an unhandled exception error.

Any additional advice would be greatly appreciated!

On Thursday, October 13, 2016 at 3:24:27 AM UTC-4, Björn Pedersen wrote:
Hi,

this is a typical use case for multi-threaded programming.

Your web interface just  sets a variable (protected by a mutex), and a background  thread does the LED output.

Björn

Am Donnerstag, 13. Oktober 2016 07:44:03 UTC+2 schrieb Peter Tsapatsaris:
Hello everyone,

I've been using cherrypy on a Raspberry Pi to run a web controllable LED matrix.  I've run into a bit of a wall.  Short version of question: Is it possible to send the user to a new webpage in a function WITHOUT returning or breaking?  I am trying to execute code in a block below the redirect. 

Long version:

The LED control code executes on a while loop after receiving input from an an HTML form like the following:

    <form name="myform" class="rounded" action="ledDisplay" method="GET" onsubmit="archive.html">         
        <input type="text" class="box" name="message" maxlength="1000" placeholder="enter your message" />
        <input type="submit">
    </form>

The ledDisplay function executes the while loop with the message from the form.  My problem is this--after submission, I would like to redirect the user to a new webpage (e..g, "thanks.html").  However, when I redirect it either executes BEFORE the while loop, thus preventing the LED from running, or executes AFTER the while loop, i.e., never.  

Does anyone know if there is a way to get CherryPy to send the user to a new webpage and then continue to execute a code block?  Here is a skeleton of the code I'm working with:

class myApp:
def index(self):
return open('index.html')
index.exposed = True
def ledDisplay(self, message):

if message:
raise cherrypy.HTTPRedirect("thanks.html") /* This prevents the loop from executing.  Any way to open the page and still execute the loop*/
 
while True:
                               //Execute LED code on loop.
Apologies if I'm being obtuse - I am new to programming. 

--
You received this message because you are subscribed to the Google Groups "cherrypy-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
Visit this group at https://groups.google.com/group/cherrypy-users.
For more options, visit https://groups.google.com/d/optout.