/app/default/test
points to executing your test() inside the controller named default.py
args and vars are, in respect
- args : /app/default/test/*1/2/3* 
- vars : /app/default/test?*foo=bar&foo=bar2&hello=world*

To sum up, args are fine if you want cleaner urls, but you can't put 
whatever you want on them (imagine something like /app/default/test/*รนร +:\*/
, not a "smart" way to pass garbles on the url, but, e.g., something like 
/app/default/test/*1/on* where *1 *is the "bulb" number and *on* is the 
"action" you want to do seems fine).
"Vars" on the other hand allow more flexibility, "garbled" parameters are 
allowed...maybe the nicest "feature" is that if you need a single variable 
holding multiple values "vars" parses them automatically (e.g. "turn on 
bulb 1 and bulb 2" can be done with /app/default/test?*
bulb=1&bulb=2&action=on*) . Urls are not "clean" as with "args" but the 
functionality is the same.

Bottomline, use what you feel appropriate, either one would do just fine. 

On Tuesday, April 2, 2013 9:56:25 AM UTC+2, [email protected] wrote:
>
> Hi guys! Sorry but I still do not quite understand after reading the 
> chapters about "Dispatching" and "URL". i guess my programming foundation 
> isn't that strong... and i have problem understanding without referring to 
> examples.
>
> Here is my situation and i would like to get a general idea on how to 
> solve the problem. May be my idea was wrong so please correct me :)
>
> I have just successfully connect a device to my Raspberry Pi, with web2py 
> as the webserver on Raspberry pi. Currently, i have created a home page 
> using the template, and there is a "Login" button on it. When i click on 
> the image (button), it directs me to default/test.html. the device gets the 
> login information and turns on and off the testlight. 
>
> in default/index.html:
>
> <a href = "{{=URL <https://10.0.0.132/examples/global/vars/URL>(c='default', 
> f='test')}}"><img src ="/Comfort2/static/images/login.jpg" width ="128" 
> height="69"></a>
>
>
> in default.py:
>
> def test():
>     import serial
>     import time
>     response <https://10.0.0.132/examples/global/vars/response>.flash=T 
> <https://10.0.0.132/examples/global/vars/T>("welcome home!")
>     time.sleep(1)
>
>     serialport= serial.Serial("/dev/ttyAMA0", 9600, timeout=0.5) #opening the 
> port
>     
>
>     serialport.write("\x03LI1234\x0D") #write a serial command to log into 
> the device
>     reply=serialport.readlines(1)
>     print reply
>     time.sleep(1)
>     serialport.write("\x03O!0101\x0D") #turn on a testlight
>     time.sleep(2)
>     serialport.write("\x03O!0100\x0D") #turn off a testlight
>     return dict()
>
>  
> However, i would like to separate it into a few tasks. So, after pressing 
> the "login" button, it will only login and direct me to test.html with 2 
> buttons (Turn on light and turn off light). if i press on the turn on light 
> button, the testlight will turn on and same for the other one. I would like 
> all these to be under one function because the commands can only be sent 
> when it is logged into the device. (if it is under another function, i will 
> need to login again.) So do i need to use args and vars at this point? 
>
> I do not really understand what is args and vars and how are they used. 
> the information in the chapters taught me that 
> request.args = ['x', 'y', 'z']  
> request.vars={'p':1, 'q':2} 
>
> but what are x,y,z,p, q, 1 and 2? under what conditions are they declared 
> and where do they appear?
>
> Another question: can i display a jQuery keypad using web2py? 
>
> My progress using cherrypy is slightly more ahead than web2py. i am sure i 
> can transfer my work in cherrypy over to web2py... but i must get the whole 
> concept clear... please help me. 
> sorry that i sound very noob.... but much thanks to everyone for your 
> patience and guidance! :)
>

-- 

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


Reply via email to