저는 web2py에서 새로운데, 고생하고 있습니다.web2py sqlform 오류
등록 및 로그인 항목을 작성하려고합니다. 모델에서 나는 CONTROLER에서 이제 새로운 사용자
에 대한usersdb = DAL('postgres://postgres:[email protected]/'+ request.vars['school'], migrate=True)
auth = Auth(usersdb, hmac_key=Auth.get_or_create_key())
usersdb.define_table(
'users',
Field('first_name', length=128, default=''),
Field('last_name', length=128, default=''),
Field('email', length=128, default='', unique=True),
Field('address', length=256, default=''),
Field('postcode', length=128, default=''),
Field('city', length=128, default=''),
Field('password', 'password', length=512, readable=False, label='Password'),
Field('registration_key', length=512, writable=False, readable=False, default=''),
Field('reset_password_key', length=512, writable=False, readable=False, default=''),
Field('registration_id', length=512, writable=False, readable=False, default=''),
format='%(first_name)s %(last_name)s')
을 tabel을 만들려면 다음 코드를 나는 다음과 같은 코드가 있습니다
usersdb = DAL('postgres://postgres:[email protected]/'+ request.vars['school'], migrate=True)
auth = Auth(usersdb, hmac_key=Auth.get_or_create_key())
auth.settings.registration_requires_approval = True
form = SQLFORM(usersdb.users)
if form.process(session=None, formname='test').accepted:
response.flash = 'form accepted'
elif form.errors:
response.flash = 'form has errors'
else:
response.flash = 'please fill the form'
# Note: no form instance is passed to the view
#set sample validator (do not allow empty nor duplicate names)
return dict(form=form,config=config)
오류가 SQLFORM (usersdb.users)에서 loged됩니다. 'users'
실제로이 물건이 어떻게 작동하는지 (데이터베이스를 조절기에 연결하는 것) 모르겠다. 나는 smb가 작성한 코드를 해킹하고있다. 그밖에.
조언이나 간단한 설명에 감사드립니다.
당신은 컨트롤러에 userdb
또는 auth
의 정의를 반복하지 말아야
하지만 대신에 어떻게 양식을 얻을 수 있습니까? 나는 SQLFORM을 사용하지만 userdb를 제거하면 오류가 발생합니다. – Yebach
모델 파일 (즉,/models 폴더의 파일)에'usersdb'를 정의한 경우에는 전역 적으로 사용할 수 있습니다 모든 컨트롤러. 그렇지 않은 경우 모델 파일에서 제대로 정의하지 않은 것입니다. 어떤 오류가 발생합니까? – Anthony
그래서 model/db.py auth = Auth (db, hmac_key = Auth.get_or_create_key())auth.define_tables()에서 auth 데이터베이스를 만들었고 controler에서 함수 사용자 반환 dict (form = auth . 나는 web2py의 샘플에서 복사했습니다. 오류를 수신합니다. NameError : 전역 이름 'auth'가 정의되지 않았습니다. web2py 로그인 및 등록의 샘플 페이지에 거의 동일한 코드가 있습니다. – Yebach