Mmm, suppose I could do things like that…

But it is rather annoying that web2py has no built-in
reverse-engineering (intropspection) that can impose a web2py overlay
atop an existing database…

On Sat, Feb 9, 2013 at 7:04 PM, Bruno Rocha <rochacbr...@gmail.com> wrote:
> If your contrib needs to have its own models and controllers, then you
> should create it as a plugin. Or you can create a module and define an API
> for it, take a dummy example.
>
>
> /modules/myawesomemodule.py
>
> class MyAwesomeClass(object):
>     """
>     it creates the Awesome object which is a login_method
>     to use include in your models
>     db = DAL(........)
>     from myawesomemodule import MyAwesomeClass
>     something = MyAwesomeClass(db)
>     something.define_tables()
>     auth.settings.login_methods = something
>     """
>
>     def __init__(db, *args, **kwargs):
>         self.db = db
>
>     def define_tables(self, migrate=True):
>         self.table1 = self.db.define_table("table1",
>             Field("a_field"),
>             migrate=migrate
>         )
>
>         self.table2 = self.db.define_table("table2",
>             Field("a_field"),
>             migrate=migrate
>         )
>
>     def do_something(self):
>         self.data = self.db(.....).select()
>         # do domething
>         return data
>
> Then in following your documentation developers should use you module api
> as:
>
> models/db.py
>
> db = DAL(.....)
>
> from myawesomemodule import MyAwesomeClass
>
> something = MyAwesomeClass(db)
> something.define_tables()
>
> auth.settings.login_methods = something
>
>
>
> On Sat, Feb 9, 2013 at 5:34 AM, Alec Taylor <alec.tayl...@gmail.com> wrote:
>>
>> But I am creating a contrib for:
>> https://github.com/web2py/web2py/tree/master/gluon/contrib/login_methods
>>
>> (OAuth2; my work-in-progress is on Github)
>>
>> But because of the design of the standard I require 3 additional
>> tables + a user table.
>>
>> So how do you propose I manage this scenario?
>>
>> On Sat, Feb 9, 2013 at 6:26 PM, Bruno Rocha <rochacbr...@gmail.com> wrote:
>> > Usually you create a "script" file in /models/db.py then you define your
>> > tables there, so when starting in shell mode you pass -M
>> >
>> > python web2py.py -S yourapp -M
>> >
>> > -M run the models/* files and defines your table as "object" for you to
>> > access.
>> >
>> > Every framework works in this way.
>> >
>> > Optionally, you can use db.executesql("PUT YOUR SQL HERE") and do it by
>> > your
>> > own...
>> >
>> >
>> > On Sat, Feb 9, 2013 at 4:13 AM, Alec Taylor <alec.tayl...@gmail.com>
>> > wrote:
>> >>
>> >> Hold up; you mean to tell me I need to redefine the schema each time a
>> >> new
>> >> db (DAL object) needs to access it?
>> >>
>> >> That sounds silly.
>> >>
>> >> Isn't there a way around this?
>> >>
>> >>
>> >> On Saturday, February 9, 2013 4:40:28 PM UTC+11, Vasile Ermicioi wrote:
>> >>>
>> >>> let say you have table1 and table2 in database,
>> >>>
>> >>> you shoud define your tables
>> >>>
>> >>> db.define_table('table1',
>> >>> ..)
>> >>>
>> >>> and only after that you will have access to db.table1
>> >>>
>> >>> you can;t access db.table2 if it is not defined even if it exists in
>> >>> the
>> >>> database
>> >>
>> >> --
>> >>
>> >> ---
>> >> 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/groups/opt_out.
>> >>
>> >>
>> >
>> >
>> > --
>> >
>> > ---
>> > 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/groups/opt_out.
>> >
>> >
>>
>> --
>>
>> ---
>> 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/groups/opt_out.
>>
>>
>
> --
>
> ---
> 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/groups/opt_out.
>
>

-- 

--- 
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/groups/opt_out.


Reply via email to