I'm not sure what your statement means, however i will give it my best shot
to explain> I'm new to web2py myself.
Her goes:

In my models folder i have several different sub folders:
ar, ap ,gl ...etc...

Each has the definition. For example under ar there is the
dbf_arfiles_dal.py which starts likes this:

db.define_table('ar_cusmas_billing_info',
    Field('company_number', type='reference client.company_number',
ondelete='CASCADE'),
    Field('client_number', type='reference client.client_number',
ondelete='CASCADE'),
    Field('bank_name', type='string', length=30),
    Field('bank_route', type='integer'),
    Field('bank_acct', type='integer'),
    Field('cc', type='string', length=2),
    Field('ccno', type='integer'),
    Field('exp1', type='date'),
    Field('holder1', type='string', length=50),
    Field('cc2', type='string', length=2),
    Field('ccno2', type='integer'),
    Field('exp2', type='date'),
    Field('holder2', type='string', length=50),
    primarykey=['company_number','client_number'],
    migrate=False)

db.define_table('ar_cusmas_pclass',
    Field('company_number', type='reference client.company_number',
ondelete='CASCADE'),
......... and so one.

In 0.py , I start it off as:
--------------------------------------------------------------------------------------------------------------------------------------------------------------

# -*- coding: utf-8 -*-

# -------------------------------------------------------------------------
# AppConfig configuration made easy. Look inside private/appconfig.ini
# Auth is for authenticaiton and access control
# -------------------------------------------------------------------------
import datetime
from gluon.contrib.appconfig import AppConfig
from gluon.settings import global_settings
from gluon import current
from gluon.tools import Crud, Service
# from gluon.tools import Auth

from gluon.storage import *
from pydal.contrib import portalocker
from pydal._compat import basestring, StringIO, integer_types, xrange,
BytesIO, to_bytes, long
from gluon.storage import Messages, Settings, Storage
from gluon.utils import web2py_uuid

from gluon.validators import CLEANUP, CRYPT, IS_ALPHANUMERIC,
IS_DATE_IN_RANGE, IS_DATE, \
    IS_DATETIME_IN_RANGE, IS_DATETIME, IS_DECIMAL_IN_RANGE, \
    IS_EMAIL, IS_EMPTY_OR, IS_EXPR, IS_FLOAT_IN_RANGE, IS_IMAGE, \
    IS_IN_DB, IS_IN_SET, IS_INT_IN_RANGE, IS_IPV4, IS_LENGTH, \
    IS_LIST_OF, IS_LOWER, IS_MATCH, IS_EQUAL_TO, IS_NOT_EMPTY, \
    IS_NOT_IN_DB, IS_NULL_OR, IS_SLUG, IS_STRONG, IS_TIME, \
    IS_UPLOAD_FILENAME, IS_UPPER, IS_URL

# from gluon.validators import CRYPT, IS_EMAIL, IS_EQUAL_TO,
IS_INT_IN_RANGE, IS_LOWER, IS_MATCH, IS_NOT_EMPTY, \
#     IS_NOT_IN_DB
from pydal.objects import Table, Field, Row

........ (and so on till I get to the bottom)

# -------------------------------------------------------------------------
# Local application settings
# -------------------------------------------------------------------------

settings = Storage()

settings.migrate = False
settings.title = request.application
settings.subtitle = T('Ben Duncan')
settings.author = 'Ben Duncan'
settings.author_email = 'y...@example.com'
settings.keywords = 'Ben Duncan'
settings.description = 'Ben Duncan'
settings.layout_theme = 'Default'
settings.database_uri = 'postgres://
web2py:web2py@10.13.70.47:7103/ac03303_live'
settings.security_key = 'c4d5c7ec-97b4-474b-98d3-9c1582dad510'
settings.email_server = 'localhost'
settings.email_sender = 'y...@example.com'
settings.email_login = ''
settings.login_method = 'local'
settings.login_config = ''
settings.plugins = []
session.is_logged_in = 'NO'

--------------------------------------------------------------------------------------------------------------------------------------------------------------

Then in db.py I have:

# -*- coding: utf-8 -*-

# -------------------------------------------------------------------------
# Database model
# -------------------------------------------------------------------------

db = DAL(settings.database_uri, pool_size=10, migrate_enabled=False,
fake_migrate_all=True )

# -------------------------------------------------------------------------
# Here is sample code if you need for
# - email capabilities
# - authentication (registration, login, logout, ... )
# - authorization (role based authorization)
# - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss)
# - old style crud actions
# (more options discussed in gluon/tools.py)
# -------------------------------------------------------------------------
# host names must be a list of allowed host names (glob syntax allowed)
# auth = Auth(db, host_names=configuration.get('host.names'))
# auth = Auth(db, secure=True)
# -------------------------------------------------------------------------
#auth = Auth(db,signature=False)
crud = Crud(db)

...... (every thing else is commented out  as well. this is because I am
doing my own custome authentication and other
things - which MAYBE the grief I'm causing myself. ..)

--------------------------------------------------------------------------------------------------------------------------------------------------------------


Hopefully this should get you going

If I've missed anything, Anthony can you fill in ?

Good Luck ...


*Ben Duncan*
DBA / Chief Software Architect
Mississippi State Supreme Court
Electronic Filing Division


On Sat, Feb 9, 2019 at 10:56 AM Jon Subscripted <jonsubscripti...@gmail.com>
wrote:

> Hi Ben,
> Inside my app folder I do have the table defined, but not in my script
> (accessing   the db outside web2py).
> I thought that the folder path reference solved this (*).
> Should i add the define table in my script?
> Thanks and regards, Jon.
>
> (*) I guess that’s why .table files are kept even when SQLite is no longer
> usted.
>
> El El vie, 8 feb 2019 a las 14:28, Ben Duncan <linux...@gmail.com>
> escribió:
>
>> Did you set up the db_define table for the database in models.
>>
>> For example, the accounting package I am working on for our Supreme Court
>> has and external postgres database.
>> From the DDL, I've created, for example, the "ship to code" file (we
>> reuse for something else)
>>
>> ---------------------------------------------------------------------------------------------------------------------
>> db.define_table('ar_ship_code',
>>     Field('company_number', type='reference company.company_number',
>> ondelete='CASCADE'),
>>     Field('code', type='string', length=10),
>>     Field('short_desc', type='string', length=20),
>>     Field('description', type='string', length=255),
>>     Field('notes', type='text'),
>>     primarykey=['company_number','code'],
>>     migrate=False)
>>
>> ---------------------------------------------------------------------------------------------------------------------------
>>
>> For each table you want to access, you will need a "db.define_table"
>> entry in the model directory.
>>
>> Hope this helps
>> *Ben Duncan*
>> DBA / Chief Software Architect
>> Mississippi State Supreme Court
>> Electronic Filing Division
>>
>>
>> On Fri, Feb 8, 2019 at 7:17 AM Jon Subscripted <
>> jonsubscripti...@gmail.com> wrote:
>>
>>> Hi everyone,
>>> I'm trying to access the data stored in my app db from a different piece
>>> of software (apart from my web2py app). But I get an error AttributeError.
>>>
>>> Based on the manual:
>>>
>>>
>>> http://www.web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Using-DAL-without-define-tables
>>>
>>> I used the code below (from IDLE):
>>>
>>> import sys
>>>
>>> sys.path.append(r'C:\Users\Jon\Downloads\web2py_src\web2py\gluon')
>>>
>>> from gluon import DAL
>>>
>>> dbpath =
>>> r'C:\Users\Jon\Downloads\web2py_src\web2py\applications\xakemate_scratch\databases'
>>> problemsuri = 'mysql://root:web2py@localhost/xakemate'
>>> pos = 'test_position'
>>>
>>> db = DAL(problemsuri,folder=dbpath,auto_import=True)
>>> query = (db.problem.fen == pos)
>>> problem = db(query).select(orderby=db.problem.id).first()
>>>
>>> I get the following error:
>>>
>>> Traceback (most recent call last):
>>>   File "<pyshell#33>", line 1, in <module>
>>>     query = (dbproblems.problem.fen == posFEN)
>>>   File "C:\Python27\lib\site-packages\gluon\dal.py", line 7150, in
>>> __getattr__
>>>     return ogetattr(self, key)
>>> AttributeError: 'DAL' object has no attribute 'problem'
>>>
>>> From what I understood the tables should be auto-imported and thus known
>>> to my code. Why is it not finding the table?
>>>
>>> In addition to that I've got a couple of questions:
>>>
>>> 1st Should I import PYDAL (from pydal import DAL)  or GLUON.DAL (as I
>>> did)?
>>>
>>> 2nd Even when using the db different from SQLite should we point to
>>> "applications/myapp/databases"?
>>>
>>> Thanks in advance, Jon.
>>>
>>>
>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
>>>  Libre
>>> de virus. www.avast.com
>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
>>> <#m_-8586355468110605202_m_-6215750885323799383_m_5787271047422858639_m_-5898545075541849496_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>>
>>> --
>>> 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.
>>>
>> --
>> 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.
>>
> --
> 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.
>

-- 
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