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/6baae6a0-7fc4-4363-8865-9ede71152ac1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to