[web2py] Digitally signed URLs in py4web?

2020-02-13 Thread Luca
In web2py, I used to sign all the AJAX callback URLs, using the URL(..., 
user_signature=True) method. 

In py4web, I don't see any emphasis or use on signed URLs.  Why are signed 
URLs not commonly used in py4web? 

A digital signature is useful to prevent javascript running from other 
sites (e.g., www.attack.com) from performing AJAX calls to our site (e.g., 
www.example.com). 

Does the same-origin policy prevent these attacks?  I think not.  The 
problem is that the same-origin policy is implemented in the browser, with 
the help of headers returned from the server.  Thus, at the point when the 
policy is enforced, any side effects of the AJAX call (e.g., modifications 
to stored content) might have already happened.  Is my understanding 
correct?  If this is correct, then a way to digitally sign URLs in py4web 
is needed. 

Of course, even if we digitally sign the URLs, an attacker script could 
load the .html page first where the digitally signed URLs are -- but THIS 
is correctly prevented by the same-origin policy, hopefully. 

Is my analysis wrong? 

If we were to implement digitally signed URLs, is there already a random 
token in the user' session that can be used to sign the URLs? If not it 
would be easy to add. 

Sorry if this is kind of trivial to you all; I am just trying to figure out 
how to do things in py4web that I used to do in web2py... 
I think as useful practice, I am now going to implement a fixture or 
something like that to check for signatures... 

Luca

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/fbe04016-a07f-4612-9ede-1fb701684fb7%40googlegroups.com.


[web2py] Error in factories.py in py4web?

2020-02-13 Thread Luca
In the class ActionFactory, there's the code below.  Is that an error?  I 
don't think requires_login is in the proper place?  Maybe I don't 
understand. 

def put(self, path=None, template=None):
return self._action_maker('PUT', template, requires_login)

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/6ff44ddc-7f5e-47c0-a5e7-4fd8d6856e29%40googlegroups.com.


[web2py] Re: py4wb simplification

2020-02-13 Thread Luca
What do @authenticated and @unauthenticated do? 
Can they be added to the documentation? 

In particular I don't understand 

# define a button that make the following serverside POST callback
@unauthenticated.button("click me")
def a_button(msg):
print("you clicked the button and server received:", msg)

Thanks! 

Luca



Luca

On Friday, January 31, 2020 at 8:55:11 PM UTC-8, Massimo Di Pierro wrote:
>
> I committed some new code to py4web
>
> Now you can do:
>
> from . common import authenticated, unauthenticated # from latest _scaffold
>
> # exposes index as /{app_name}/index and uses index.html or generic.html 
> template, auth.user, db, T, session
> @authenticated()
> def index():
>   return dict()
>
> # GET only
> @authenticated.get()
> def index():
>   return dict()
>
> # exposes /{app_name}/index///
> @authenticated.get()
> def index(a,b,c):
>   return dict()
>
> # more explicit
> @authenticated.get("index///)
> def index(a,b,c):
>   return dict()
>
> Some magic
>
> # define a button that make the following serverside POST callback
> @unauthenticated.button("click me")
> def a_button(msg):
> print("you clicked the button and server received:", msg)
>
> # expose a page that displays the button which - onclick - makes the 
> ballback
> @unauthenticated.get()
> def show_a_button():
> return dict(mybutton = a_button(msg="hello world"))
>
> Thoughts? Should we keep this API? Can we improve it?
>
>
>
>
>
>
>
>
>
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/7b38abbe-3a07-41c1-9402-0204edf1e12d%40googlegroups.com.


Re: [web2py] webp2y XML helper sanitize line breaks under python3.6

2020-02-13 Thread Christian Varas
Great!

El El jue, 13 de feb. de 2020 a la(s) 09:22, Clemens <
clemens.odend...@claret-clover.de> escribió:

> Tim Nyborg has got the solution:
> It's a bug in yatl/sanitizer.py, which can be fixed as described:
>
> https://stackoverflow.com/questions/60176267/webp2y-xml-helper-sanitize-line-breaks-under-python3
>
> Thanks Tim!
>
> On Wednesday, February 12, 2020 at 5:17:31 PM UTC+1, Clemens wrote:
>>
>> Hi Chris,
>>
>> thanks a lot for your help! But the problem still exists even replacing
>> my str_replace routine by str.replace() as proposed by you. Yes, I had the
>> same problem with line breaks crashing the view. And replacing the line
>> breaks by  fixed it. But switching form python 2.7 to 3.6 raises the
>> new problem that the sanitizer can't process -coded line breaks.
>> Without sanitize=True (i.e. False by default) it also works with python
>> 3.6. But sanitize=True doesn't work for -coded line breaks under
>> python 3.6. And this is the case only for line breaks, all other special
>> character are no problem.
>>
>> I really think, that the XML sanitizer under python 3.6 is the problem.
>> Do you have an idea for a work around except of eliminating all line
>> breaks, cause I can't do this?
>>
>> Best regards
>> Clemens
>>
>>
>> On Wednesday, February 12, 2020 at 4:42:53 PM UTC+1, Christian Varas
>> wrote:
>>>
>>> Hi Clemens,
>>>
>>> Replace can handle big text it does not matter if is 1 - 1000 lines or
>>> more, It will replace all the occurrences in the text, also is faster.
>>> chaining "replace" is more faster than other methods.
>>>
>>> description = his_item.description.replace("\n","").replace("\r","
>>> ").replace("<","").replace(">","")
>>> XML(description, sanitize=True)
>>>
>>> or in one line
>>>
>>> XML(his_item.description.replace("\n","").replace("\r","")
>>> .replace("<","").replace(">",""), sanitize=True)
>>>
>>>
>>> A(this_item.title, \
>>>   callback = URL('item', 'select', \
>>>  vars=dict(uuid=this_item.uuid), user_signature=True), \
>>>   _title=XML(his_item.description.replace("\n","").replace("\r","
>>> ").replace("<","").replace(">",""), sanitize=True)
>>>
>>> I had this issue with line breaks and XML helper also, the input
>>> containing line breaks was breaking my view, and replacing the bad
>>> characters before pass it to the helper fixed my problem.
>>>
>>> Try in a console with a custom text and see the results.
>>>
>>> Hope this helps
>>> Cheers.
>>> Chris.
>>>
>>> El mié., 12 feb. 2020 a las 10:08, Clemens ()
>>> escribió:
>>>
 Hello Chris,

 thanks for your answer! But just kicking out all line breaks is a
 little harsh, since in my case the description is mostly a few lines long
 with 2 or 3 paragraphs. And I had the problem already solved by this
 procedure and the call as described in my question:

 def str_replace(string, replacement_dict):
> if not isinstance(string, str):
> string = str(string)
> pattern = re.compile('|'.join([re.escape(k) for k in
> list(replacement_dict.keys())]), re.M)
> return pattern.sub(lambda x: replacement_dict[x.group(0)], string)
>

 And this solution worked very well with python 2.7, having even line
 breaks in link titles. Then I moved to python 3.6 and the problem was
 there. Thus, I think, that the XML sanitizer under Python 3.6 is the
 problem, since it can't handle 

 Do you have any other ideas?

 Best regards
 Clemens


 On Wednesday, February 12, 2020 at 12:08:17 PM UTC+1, Christian Varas
 wrote:
>
> I had an issue with line breaks too, I remove lie breaks like this
> with python 3.7
>
> some_string = some_string.replace(“\n”, ””).replace(“\r”, ””)
>
> XML(some_string, sanitize=True)
>
> Cheers
> Chris
>
> El El mié, 12 de feb. de 2020 a la(s) 04:37, Clemens <
> clemens...@claret-clover.de> escribió:
>
>> Hello!
>>
>> In my web2py app I’m processing a list of items, where the user can
>> click on a link for each item to select this. An item has an UUID, a 
>> title
>> and a description. For a better orientation the item description is also
>> displayed as link title. To prevent injections by and to escape tags in 
>> the
>> description I’m using the XML sanitizer as follows:
>>
>> A(this_item.title, \
>>   callback = URL('item', 'select', \
>>  vars=dict(uuid=this_item.uuid),
>> user_signature=True), \
>>   _title=XML(str_replace(this_item.description, {'\r\n':'',
>> '<':'', '>':''}), sanitize=True))
>>
>> Using Python 2.7 everything was fine. Since I have switched to Python
>> 3.6 I have the following problem. When the description contains line 
>> breaks
>> the sanitizer is not working anymore. For example the following string
>> produces by my str_replace routine is fine to be sanitized by the XML
>> helper 

[web2py] Re: psycopg2 error

2020-02-13 Thread Clemens
Have you installed the corresponding python 3 lib for postgres?
*pip3* install --no-binary :all: --upgrade psycopg2

What's your os? I'm using Linux and I switched to python 3, also using 
postgres and I have no problems with psycopg2.

Best regards
Clemens


On Wednesday, February 5, 2020 at 3:44:44 PM UTC+1, Maurice Waka wrote:
>
> I recently installed python 3.6.9 and reinstalled web2py. Previously 
> everything was working well. Now I have this error when trying to log in:
>
> 1.
> 2.
> 3.
> 4.
> 5.
> 6.
> 7.
> 8.
> 9.
> 10.
> 11.
> 12.
> 13.
> 14.
> 15.
> 16.
> 17.
> 18.
> 19.
> 20.
> 21.
> 22.
> 23.
> 24.
> 25.
> 26.
> 27.
> 28.
>
> Traceback (most recent call last):
>   File "/home/maurice/web2py/gluon/restricted.py", line 219, in restricted
> exec(ccode, environment)
>   File "/home/maurice/web2py/applications/rivelar/models/db2.py" 
> , line 12, in 
> 
> db = DAL( 
> "postgres://mauricewaka:b3th32dau2a##@localhost:5432/riveldb")#, 
> migrate=False)
>   File "/home/maurice/web2py/gluon/packages/dal/pydal/base.py", line 171, in 
> __call__
> obj = super(MetaDAL, cls).__call__(*args, **kwargs)
>   File "/home/maurice/web2py/gluon/packages/dal/pydal/base.py", line 477, in 
> __init__
> "Failure to connect, tried %d times:\n%s" % (attempts, tb)
> RuntimeError: Failure to connect, tried 5 times:
> Traceback (most recent call last):
>   File "/home/maurice/web2py/gluon/packages/dal/pydal/base.py", line 457, in 
> __init__
> self._adapter = adapter(**kwargs)
>   File "/home/maurice/web2py/gluon/packages/dal/pydal/adapters/postgres.py", 
> line 27, in __call__
> return AdapterMeta.__call__(cls, *args, **kwargs)
>   File "/home/maurice/web2py/gluon/packages/dal/pydal/adapters/__init__.py", 
> line 39, in __call__
> obj = super(AdapterMeta, cls).__call__(*args, **kwargs)
>   File "/home/maurice/web2py/gluon/packages/dal/pydal/adapters/postgres.py", 
> line 54, in __init__
> driver_args, adapter_args, do_connect, after_connection)
>   File "/home/maurice/web2py/gluon/packages/dal/pydal/adapters/base.py", line 
> 369, in __init__
> super(SQLAdapter, self).__init__(*args, **kwargs)
>   File "/home/maurice/web2py/gluon/packages/dal/pydal/adapters/base.py", line 
> 51, in __init__
> self._initialize_(do_connect)
>   File "/home/maurice/web2py/gluon/packages/dal/pydal/adapters/postgres.py", 
> line 95, in _initialize_
> self.driver.__version__)
> AttributeError: module 'gluon.contrib.psycopg2' has no attribute '__version__'
>
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/df347779-fc06-434f-bd5c-dd7bff245ebc%40googlegroups.com.


Re: [web2py] Re: special chars in view, utf8 issue ?!

2020-02-13 Thread António Ramos
my solution   .decode('utf8').encode('latin1')
just did it without thinking... dont know what i´m doing but it works...

  {{temp=db(db.apps.id>0).select(db.apps.icon,db.apps.
url,db.apps.bg,db.apps.title,orderby=db.apps.id)}}
  {{for x in temp:}}
  {{=XML({"url":x["url"],"icon":x["icon"],"title":x[
'title'].decode('utf8').encode('latin1'),"bg":x["bg"]}) }},
  {{pass}}

Em qua., 12 de fev. de 2020 às 13:19, Clemens <
clemens.odend...@claret-clover.de> escreveu:

> Hello Ramos,
>
> since I can't see your screenshot, I have to guess. But in German we also
> our special characters and I encode these by the following procedure:
>
> import re
>> import sys
>>
>> def convert_special_chars(label):
>> if sys.version_info[0]==2: # python 2.x
>> label = label.decode('utf-8')
>> label = cgi.escape(label)
>> label = label.encode('ascii', 'xmlcharrefreplace')
>>
>> return label
>>
>
> Have a try! Hope it helps!
>
> Best regards
> Clemens
>
>
> On Wednesday, February 12, 2020 at 12:12:41 PM UTC+1, Ramos wrote:
>>
>> Hello i cant understand how to solve this issue.
>> I have a record with portuguese characters
>> "Ações de cada um" that passing it to  the view results in a different
>> value.
>> How do i understand it to solve it ?
>>
>> [image: image.png]
>> This is the result in my view
>> My layout has  
>> and my view is just
>>
>> {{=a}}
>>
>> [image: image.png]
>> and this is my controller
>> # -*- coding: utf-8 -*-
>> def execdal():
>>
>> ret=[]
>> a=db(db.apps.id==1).select(db.apps.icon,db.apps.url,db.apps.bg
>> ,db.apps.title,orderby=db.apps.id).as_list()
>> return dict(a=a)
>>
> --
> 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.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/web2py/b63a8e8e-717a-41e7-b2fd-476dae50ebed%40googlegroups.com
> 
> .
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/CAEM0BxNkSBUm92np%3DPGj_6AUQ36s01xbSrBdGN8P%3Ddyn-aTpJg%40mail.gmail.com.


Re: [web2py] Re: Looking for web2py developer for Italian small company

2020-02-13 Thread Gaël Princivalle
Dear Massimo.

Did you plan to add the grid to py4web?

Il giorno lunedì 10 febbraio 2020 17:13:56 UTC+1, Massimo Di Pierro ha 
scritto:
>
> Hello Victor,
>
> I recommend everybody to move from web2py to py4web. I am using the latter 
> for my own projects and find it better.
> Honestly web2py has more features and it has been battle-tested but py4web 
> is catching up quickly and, if you do not need the grid, I think it is 
> already better.
>
> Massimo
>
>
>
> On Sunday, 9 February 2020 21:58:26 UTC-8, VJ Sosa wrote:
>>
>> Dear Massimo,
>>
>> One month ago I just started to develop some demos of a web application 
>> using web2py. I'm interested in go further with a more serious 
>> implementation,
>> but today I'm realizing that this group is also talking about py4web.
>> Considering that py4web is your new bet for a python framework, do you 
>> recommend me to go further with py4web instead of web2py?
>> Will be web2py deprecated in a close future?
>> Are you planning offer similar documentation (like a book) for py4web?
>>
>> Thanks in advance, I do appreciate your work.
>> Víctor.
>>
>> El jueves, 30 de enero de 2020, 7:10:45 (UTC+1), Massimo Di Pierro 
>> escribió:
>>>
>>> Yes. for me it is the future. It is usable. I recently tried to port 
>>> some of my apps from web2py to py4wb and f they do not use grid, the 
>>> transition is almost trivial. The code ends up cleaner and you can use 
>>> pylint and other tools to find errors. Converting complex Auth logic can be 
>>> tricky. 
>>>
>>> On Wednesday, 22 January 2020 08:12:04 UTC-8, Hugo Alberto Rivera Diaz 
>>> wrote:

 Massimo,an honor to salute you! One question so you would recommend the 
 use of py4web over web2py? Is py4web te next step for web2py developers?

 El mié., 22 ene. 2020 a las 0:23, Massimo Di Pierro (<
 massimo...@gmail.com>) escribió:

> I strongly recommend py4web + vue.js :-)
>
> On Tuesday, 21 January 2020 07:40:18 UTC-8, Ivan Gazzola wrote:
>
>> We are a small company in Italy, we need a new developer for our 
>> project (xortho.it)
>>
>> The web app is developed with jquery mobile and web2py, we are 
>> planning to move to angular and web2py or better py4web.
>>  
>> If you're interested please contact us.
>>
>> Ciao
>>
>> Ivan
>>
>> -- 
> 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 web...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/web2py/fc6ea910-acbb-45b7-9553-2e33152d2863%40googlegroups.com
>  
> 
> .
>


 -- 
   * Saludos!*
*Hugo Alberto Rivera Diaz* 


>>>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/5d5acd53-2e0c-4f40-96b1-aa798c4d022a%40googlegroups.com.


Re: [web2py] webp2y XML helper sanitize line breaks under python3.6

2020-02-13 Thread Clemens
Tim Nyborg has got the solution:
It's a bug in yatl/sanitizer.py, which can be fixed as described:
https://stackoverflow.com/questions/60176267/webp2y-xml-helper-sanitize-line-breaks-under-python3

Thanks Tim!

On Wednesday, February 12, 2020 at 5:17:31 PM UTC+1, Clemens wrote:
>
> Hi Chris,
>
> thanks a lot for your help! But the problem still exists even replacing my 
> str_replace routine by str.replace() as proposed by you. Yes, I had the 
> same problem with line breaks crashing the view. And replacing the line 
> breaks by  fixed it. But switching form python 2.7 to 3.6 raises the 
> new problem that the sanitizer can't process -coded line breaks. 
> Without sanitize=True (i.e. False by default) it also works with python 
> 3.6. But sanitize=True doesn't work for -coded line breaks under 
> python 3.6. And this is the case only for line breaks, all other special 
> character are no problem.
>
> I really think, that the XML sanitizer under python 3.6 is the problem. Do 
> you have an idea for a work around except of eliminating all line breaks, 
> cause I can't do this?
>
> Best regards
> Clemens
>
>
> On Wednesday, February 12, 2020 at 4:42:53 PM UTC+1, Christian Varas wrote:
>>
>> Hi Clemens, 
>>
>> Replace can handle big text it does not matter if is 1 - 1000 lines or 
>> more, It will replace all the occurrences in the text, also is faster. 
>> chaining "replace" is more faster than other methods.
>>
>> description = his_item.description.replace("\n","").replace("\r","
>> ").replace("<","").replace(">","")
>> XML(description, sanitize=True)
>>
>> or in one line
>>
>> XML(his_item.description.replace("\n","").replace("\r","")
>> .replace("<","").replace(">",""), sanitize=True)
>>
>>
>> A(this_item.title, \
>>   callback = URL('item', 'select', \
>>  vars=dict(uuid=this_item.uuid), user_signature=True), \
>>   _title=XML(his_item.description.replace("\n","").replace("\r","
>> ").replace("<","").replace(">",""), sanitize=True)
>>
>> I had this issue with line breaks and XML helper also, the input 
>> containing line breaks was breaking my view, and replacing the bad 
>> characters before pass it to the helper fixed my problem.
>>
>> Try in a console with a custom text and see the results.
>>
>> Hope this helps
>> Cheers.
>> Chris.
>>
>> El mié., 12 feb. 2020 a las 10:08, Clemens () 
>> escribió:
>>
>>> Hello Chris,
>>>
>>> thanks for your answer! But just kicking out all line breaks is a little 
>>> harsh, since in my case the description is mostly a few lines long with 2 
>>> or 3 paragraphs. And I had the problem already solved by this procedure and 
>>> the call as described in my question:
>>>
>>> def str_replace(string, replacement_dict):
 if not isinstance(string, str):
 string = str(string)
 pattern = re.compile('|'.join([re.escape(k) for k in 
 list(replacement_dict.keys())]), re.M)
 return pattern.sub(lambda x: replacement_dict[x.group(0)], string)

>>>
>>> And this solution worked very well with python 2.7, having even line 
>>> breaks in link titles. Then I moved to python 3.6 and the problem was 
>>> there. Thus, I think, that the XML sanitizer under Python 3.6 is the 
>>> problem, since it can't handle 
>>>
>>> Do you have any other ideas?
>>>
>>> Best regards
>>> Clemens
>>>
>>>
>>> On Wednesday, February 12, 2020 at 12:08:17 PM UTC+1, Christian Varas 
>>> wrote:

 I had an issue with line breaks too, I remove lie breaks like this with 
 python 3.7

 some_string = some_string.replace(“\n”, ””).replace(“\r”, ””)

 XML(some_string, sanitize=True)

 Cheers
 Chris

 El El mié, 12 de feb. de 2020 a la(s) 04:37, Clemens <
 clemens...@claret-clover.de> escribió:

> Hello!
>
> In my web2py app I’m processing a list of items, where the user can 
> click on a link for each item to select this. An item has an UUID, a 
> title 
> and a description. For a better orientation the item description is also 
> displayed as link title. To prevent injections by and to escape tags in 
> the 
> description I’m using the XML sanitizer as follows:
>
> A(this_item.title, \
>   callback = URL('item', 'select', \
>  vars=dict(uuid=this_item.uuid), user_signature=True), 
> \
>   _title=XML(str_replace(this_item.description, {'\r\n':'', 
> '<':'', '>':''}), sanitize=True))
>
> Using Python 2.7 everything was fine. Since I have switched to Python 
> 3.6 I have the following problem. When the description contains line 
> breaks 
> the sanitizer is not working anymore. For example the following string 
> produces by my str_replace routine is fine to be sanitized by the XML 
> helper under Python 2.7 but not under Python 3.6:
>
> HeaderLine1Line2Line3
>>
>
> Sanitizing line breaks escaped by  is the problem with Python 3 
> (but not with Python 2). Everything else is no 

Re: [web2py] Re: Looking for web2py developer for Italian small company

2020-02-13 Thread Kevin Keller
Being self contained, simple and with smartgrid, integrated Auth, and even
wiki engine and now again with updated pyrtf web2py could still have great
future as a a framework for company internal web database apps (also easy
field calculations) to replace I. E. Lotus notes or ms access apps and
internal processes via forms and knowledge management for citizen
developers.

Also speed is not so important for this apps.

While py4web is a fast open API first backend framework for modern SPAs and
mobile apps. I would use this for thst use cases plus any customer facing
or SaaS app.

Both frameworks could be used for equal use cases, but that is how I
currently see their sweet spots when compared.



On Wed, 12 Feb 2020, 22:35 Dave S,  wrote:

>
>
> On Wednesday, February 12, 2020 at 12:02:10 PM UTC-8, Vlad wrote:
>>
>> I've used web2py happily until today, but seems need to switch to py4web
>> :)
>>
>> I've never looked into py4web; just saw msgs going back and forth about
>> it.
>>
>> What's the best way to start? Any tutorials? Is there a book similar to
>> the one on web2py? What's the home page (assuming it's separate from web2py
>> itself)?
>>
>
> From those other messages:
> http://py4web.com/_documentation/static/index.html>
>
> /dps
>
>
>
>> On Monday, February 10, 2020 at 11:13:56 AM UTC-5, Massimo Di Pierro
>> wrote:
>>>
>>> Hello Victor,
>>>
>>> I recommend everybody to move from web2py to py4web. I am using the
>>> latter for my own projects and find it better.
>>> Honestly web2py has more features and it has been battle-tested but
>>> py4web is catching up quickly and, if you do not need the grid, I think it
>>> is already better.
>>>
>>> Massimo
>>>
>>>
>>>
>>> On Sunday, 9 February 2020 21:58:26 UTC-8, VJ Sosa wrote:

 Dear Massimo,

 One month ago I just started to develop some demos of a web application
 using web2py. I'm interested in go further with a more serious
 implementation,
 but today I'm realizing that this group is also talking about py4web.
 Considering that py4web is your new bet for a python framework, do you
 recommend me to go further with py4web instead of web2py?
 Will be web2py deprecated in a close future?
 Are you planning offer similar documentation (like a book) for py4web?

 Thanks in advance, I do appreciate your work.
 Víctor.

 El jueves, 30 de enero de 2020, 7:10:45 (UTC+1), Massimo Di Pierro
 escribió:
>
> Yes. for me it is the future. It is usable. I recently tried to port
> some of my apps from web2py to py4wb and f they do not use grid, the
> transition is almost trivial. The code ends up cleaner and you can use
> pylint and other tools to find errors. Converting complex Auth logic can 
> be
> tricky.
>
> On Wednesday, 22 January 2020 08:12:04 UTC-8, Hugo Alberto Rivera Diaz
> wrote:
>>
>> Massimo,an honor to salute you! One question so you would recommend
>> the use of py4web over web2py? Is py4web te next step for web2py 
>> developers?
>>
>> El mié., 22 ene. 2020 a las 0:23, Massimo Di Pierro (<
>> massimo...@gmail.com>) escribió:
>>
>>> I strongly recommend py4web + vue.js :-)
>>>
>>> On Tuesday, 21 January 2020 07:40:18 UTC-8, Ivan Gazzola wrote:
>>>
 We are a small company in Italy, we need a new developer for our
 project (xortho.it)

 The web app is developed with jquery mobile and web2py, we are
 planning to move to angular and web2py or better py4web.

 If you're interested please contact us.

 Ciao

 Ivan

 --
>>> 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 web...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/web2py/fc6ea910-acbb-45b7-9553-2e33152d2863%40googlegroups.com
>>> 
>>> .
>>>
>>
>>
>> --
>>   * Saludos!*
>>*Hugo Alberto Rivera Diaz* 
>>
>>
> --
> 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.
>