The URL is in Javascript. In:

var baseUrl = '{{=URL('static', 'images')}}'

the part in curly braces is Python, which gets executed on the server 
before the page is sent to the browser. In the browser, you will end up 
with HTML that looks like:

var baseUrl = '/yourapp/static/images';

That's a Javascript variable. Now write the Javascript code to generate a 
random integer, append the integer and file extension to the baseURL, and 
set the document background to that URL.

Anthony


On Tuesday, June 14, 2016 at 8:05:11 AM UTC-4, Emmanuel Dsouza wrote:
>
> But how do I opened a random d.jpg through Javascript to a URL that is in 
> Python? 
>
> On Tuesday, June 14, 2016 at 5:14:13 PM UTC+5:30, Anthony wrote:
>>
>> No, you're still attempting to run Python code in Javascript. You must 
>> write actual Javascript code -- no Python. You should only be using Python 
>> to create the base URL -- for example:
>>
>>     var baseUrl = '{{=URL('static', 'images')}}';
>>     [everything else is Javascript]
>>
>> Anthony
>>
>> On Tuesday, June 14, 2016 at 7:38:15 AM UTC-4, Emmanuel Dsouza wrote:
>>>
>>> Thank you Anthony but still it is not going through!
>>> Could you check why:
>>>
>>> {{extend 'layout.html'}}
>>> <script>
>>>     window.setInterval(function(){
>>>         {{i=URL('static','images/%d.jpg' %(randint(0,2)))}}
>>>   document.body.style.background = url("{{=i}}");
>>> }, 5000);
>>> </script>
>>>
>>>
>>> Even this one doesn't work:
>>>
>>> {{extend 'layout.html'}}
>>> <script>
>>>     window.setInterval(function(){
>>>         {{f=["lightblue","pink","green"]}}
>>>         {{z=f[randint(0,2)]}}
>>>         document.body.style.background = {{=z}};
>>> }, 5000);
>>> </script>
>>>
>>>
>>> On Tuesday, June 14, 2016 at 12:29:52 PM UTC+5:30, Anthony wrote:
>>>>
>>>> Actually, in this case, you don't really need to bother with Ajax. 
>>>> Instead, just implement the random integer generation in Javascript and 
>>>> use 
>>>> the random integer to generate the URL in Javascript.
>>>>
>>>> For future reference, though, the third argument to the ajax() function 
>>>> can be ":eval" (which tells it to evaluate the returned value as JS code) 
>>>> or a JS function (which will be passed the returned value). See the 
>>>> documentation.
>>>>
>>>> Anthony
>>>>
>>>> On Tuesday, June 14, 2016 at 1:58:32 AM UTC-4, Emmanuel Dsouza wrote:
>>>>>
>>>>> I was obviously waiting for your reply only.
>>>>> Ok Anthony I got what you said. But how do I get a variable through an 
>>>>> ajax call? Ajax only updates a tag id, right?
>>>>> How do I edit this to make it work?
>>>>>
>>>>> in controller:
>>>>>
>>>>> def index():
>>>>>     return locals()
>>>>>
>>>>> in model:
>>>>>
>>>>> def retimage():
>>>>>     from random import randint
>>>>>     i=randint(0,2)
>>>>>     return URL('static','images/%d.jpg' %(i))
>>>>>
>>>>> in view:
>>>>>
>>>>> {{extend 'layout.html'}}
>>>>> <script>
>>>>>     window.setInterval(function(){
>>>>>         {{getimage=retimage()}}
>>>>>   document.body.style.background-image = url("{{=getimage}}");
>>>>> }, 500);
>>>>> </script>
>>>>>
>>>>>
>>>>> I am confused on how to get a variable value though ajax calls. Please 
>>>>> help me on this.
>>>>>
>>>>> On Monday, June 13, 2016 at 8:46:28 PM UTC+5:30, Anthony wrote:
>>>>>>
>>>>>> You cannot call Python functions on the server from Javascript code 
>>>>>> running in the browser. The following line:
>>>>>>
>>>>>>     {{getimage=retimage()}}
>>>>>>
>>>>>> will be called exactly once on the server *before *the HTML page is 
>>>>>> ever sent to the browser, and it will not result in anything being 
>>>>>> written 
>>>>>> into the Javascript code (if you look at the page source in the browser, 
>>>>>> you will see nothing there).
>>>>>>
>>>>>> If you need to retrieve images from the server without reloading the 
>>>>>> page, you must use Ajax.
>>>>>>
>>>>>> Anthony
>>>>>>
>>>>>>
>>>>>> On Monday, June 13, 2016 at 5:30:47 AM UTC-4, Emmanuel Dsouza wrote:
>>>>>>>
>>>>>>> CONTROLLER:
>>>>>>>
>>>>>>> def retimage():
>>>>>>>     
>>>>>>> k=["URL('static','images/1.jpg')","URL('static','images/2.jpg')","URL('static','images/3.jpg')"]
>>>>>>>     from random import randint
>>>>>>>     i=randint(0,2)
>>>>>>>     return k[i]
>>>>>>> def index():
>>>>>>>     return locals()
>>>>>>>
>>>>>>> VIEW:
>>>>>>>
>>>>>>> {{extend 'layout.html'}}
>>>>>>> <script>
>>>>>>>     window.setInterval(function(){
>>>>>>>         {{getimage=retimage()}}
>>>>>>>   document.body.background = url("{{=getimage}}");
>>>>>>> }, 5000);
>>>>>>> </script>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> How should I correct this?
>>>>>>>
>>>>>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to