Thank you very much for the explanation , it really helps. 

On Wednesday, May 15, 2019 at 12:23:47 AM UTC-5, Massimo Di Pierro wrote:
>
> web2py uses:
>
> (all defined in web3py/core.py)
> [100% done] pydal for DB
> [100%] pluralize for T
> [100%] yatl for template and helpers
> [100%] tornado as default web server (when no --number_workers)
> [100%] gevent + gunicorn when --number_workers is specified
> [100%] bottle for routing, request, response, abort, and redirect (but has 
> its own decorator instead the bottle one)
> [100%] has its own new session object (support cookies, db, memcache, 
> redis, and user defined)
> [100%] has its own O(1) least recently used cache/memoize function (used 
> for example to cache templates in ram)
> [100%] web3py/form.py replaces SQLFORM
>
> [75%]  "_dashboard" instead of "admin" (same purpose)
> [75%] "_dashboard dbadmin" instad of appadmin (same purpose)
> [75%] "_scaffold" instead of welcome (same purpose)
> [75%] applications/_dashboard/components/mtable.* replaces 
> SQLFORM.smartgrid 
> [50%] applications/_scaffold/components/auth.*  + web3py/utils/auth.py 
> replace Auth + user.html
>
> It uses the concept of "Fixtures" which are like bottle plugins but can 
> have dependencies. DAL, Session, T, templates are fixtures. 
>
> For every action they must be declared as in:
>
> @action('index', method=['GET','POST'])
> @action.uses('my-template.html', mysession, T , mydb)
> def index():
>       return dict()
>
> It is important to declare them to avoid a shortcoming of web2py and other 
> frameworks, to avoid doing work when it is not necessary. So if an action 
> does not need session, there is no need to even try parse cookies, hence 
> you do not declare the fixture. 
>
> You can define aliases:
>
> myaction = action.uses('my-template.html', mysession, T , mydb)
>
> and then do
>
> @action('index', method=['GET','POST'])
> @myaction
> def index():
>       return dict()
>
> Unlike web2py the models.py, controllers.py and all the other files are 
> just regular files. You can call them what you like, and they are imported, 
> not executed. This means web3py is much faster and also you can use pylint 
> and code completion without tweaks. No custom_importer that can cause weird 
> behavior. This also means there will be some nu-expected behavior for 
> web2py users and needs to be documented. Every module in the applications 
> folder is an app. Apps does not need to expose any action, they can just be 
> a collection of modules, or static files, or templates. 
>
> _dashboard and _scaffold use vue.js and the grid (mtable) and auth are vue 
> component but you can use them even if the rest of your app does not use 
> vue. Components have their own html templates in vue and they can easily be 
> customized for different CSS. This requires a much longer explanation and I 
> will write it when it is finalized.
>
> We ditched the web2py Storage object. People like it but the profiler 
> showed Storage.__getitem__ is the single most called function in web2py and 
> causes loss in performance. In web3py we stick to regular python dict 
> objects.
>
> This is work in progress so things will change.
>
> Massimo
>
>
>
>
> On Tuesday, 14 May 2019 08:42:16 UTC-7, En Ware wrote:
>>
>> So I'm trying to figure out web3py libs and how everything works 
>> together. Web3py uses bottle for request, routes, and response. Web3py uses 
>> DAL or PyDAL for database abstraction. 
>>
>> Is this still valid for Storage class ? 
>> https://web2py.readthedocs.io/en/latest/_modules/gluon/storage.html , I 
>> was looking up information on how "dict" was formed.
>>
>> On Tuesday, May 14, 2019 at 9:20:00 AM UTC-5, En Ware wrote:
>>>
>>> The editing is very fast and reloads on the fly. This is pretty 
>>> impressive. 
>>>
>>> On Tuesday, May 14, 2019 at 9:05:58 AM UTC-5, En Ware wrote:
>>>>
>>>> Ok very good, I created the directories and launched again and i can 
>>>> get to the _dashboard instance, thanks
>>>>
>>>> On Tuesday, May 14, 2019 at 8:58:44 AM UTC-5, 黄祥 wrote:
>>>>>
>>>>> pls try:
>>>>> *need an extra steps to make web3py start in latest commit (101)*
>>>>> git clone https://github.com/web2py/web3py
>>>>> cd web3py
>>>>> pip3 install -r requirements.txt
>>>>> mkdir applications/_dashboard/translations
>>>>> mkdir applications/_scaffold/databases
>>>>> mkdir applications/toys/databases
>>>>> ./web3py-start applications/
>>>>>
>>>>> directory creation to eliminate the error produced on console when 
>>>>> execute web3py-start
>>>>>
>>>>> best regards,
>>>>> stifan
>>>>>
>>>>

-- 
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/f567c4ef-ae21-4086-970c-46db3b38f70e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to