pyramid_signup è un sistema di registrazione utente generico per piramide.
Per iniziare
In primo luogo, installare le dipendenze del progetto:
& Nbsp; pip installare requirements.txt -r
& Nbsp; python setup.py sviluppare
Successivamente, eseguire il nostro script console per configurare il database:
& Nbsp; su_setup
Infine, per includere pyramid_signup nel progetto, nella configurazione di applicazioni, è necessario includere il pyramid_mailer pacchetto per l'e-mail di convalida e si è dimenticato la password e-mail e dire pyramid_signup quale sessione da utilizzare per gli oggetti del database.
& Nbsp; config.include ('pyramid_mailer')
& Nbsp; da pyramid_signup.interfaces importare ISUSession
& Nbsp; config.registry.registerUtility (DBSession, ISUSession)
& Nbsp; config.include ('pyramid_signup')
pyramid_signup non richiede pyramid_tm o ZopeTransactionManager con la sessione, ma se non vengono utilizzati se bisogna fare un passo in più, noi non commettere transazioni per voi, perché che proprio non sarebbe bello!
Tutto quello che dovete fare è iscriversi agli eventi di estensione e impegnare la sessione te, questo ti dà anche la possibilità di fare qualche ulteriore elaborazione prima che l'elaborazione è finita:
da pyramid_signup.events import PasswordResetEvent
da pyramid_signup.events import NewRegistrationEvent
da pyramid_signup.events import RegistrationActivatedEvent
da pyramid_signup.events import ProfileUpdatedEvent
def handle_request (evento):
& Nbsp; richiedere = event.request
& Nbsp; session = request.registry.getUtility (ISUSession)
& Nbsp; session.commit ()
self.config.add_subscriber (handle_request, PasswordResetEvent)
self.config.add_subscriber (handle_request, NewRegistrationEvent)
self.config.add_subscriber (handle_request, RegistrationActivatedEvent)
self.config.add_subscriber (handle_request, ProfileUpdatedEvent)
Estendere pyramid_signup
Se si desidera modificare una qualsiasi delle forme di piramide di iscrizione, è sufficiente registrare la nuova classe di deformazione da utilizzare nel Registro di sistema.
I interaces che avete a disposizione per sostituire da pyramid_signup.interfaces:
& Nbsp; ISULoginForm
& Nbsp; ISURegisterForm
& Nbsp; ISUForgotPasswordForm
& Nbsp; ISUResetPasswordForm
& Nbsp; ISUProfileForm
Questo è come si dovrebbe fare (uniforme essendo una deformazione classe Form personalizzato):
& Nbsp; config.registry.registerUtility (Uniform, ISULoginForm)
Se si desidera sovrascrivere i modelli è possibile utilizzare la funzionalità di override patrimoniale della piramide:
& Nbsp; config.override_asset (to_override = 'pyramid_signup: templates / template.mako', override_with = 'your_package: templates / anothertemplate.mako')
I modelli che avete a disposizione per sostituire sono:
& Nbsp; login.mako
& Nbsp; register.mako
& Nbsp; forgot_password.mako
& Nbsp; reset_password.mako
& Nbsp; profile.mako
Se si desidera sovrascrivere i modelli con Jinja2, basta sovrascrivere la configurazione della vista:
config.add_view ('pyramid_signup.views.AuthController', attr = 'login', NOME_ROTTA = 'login',
& Nbsp; renderer = 'yourapp: templates / login.jinja2')
config.add_view ('pyramid_signup.views.ForgotPasswordController', attr = 'forgot_password',
& Nbsp; NOME_ROTTA = 'forgot_password', renderer = 'YourApp: templates / forgot_password.jinja2')
config.add_view ('pyramid_signup.views.ForgotPasswordController', attr = 'reset_password',
& Nbsp; NOME_ROTTA = 'reset_password', renderer = 'YourApp: templates / reset_password.jinja2')
config.add_view ('pyramid_signup.views.RegisterController', attr = 'registrati',
& Nbsp; NOME_ROTTA = 'registro', renderer = 'YourApp: templates / register.jinja2')
config.add_view ('pyramid_signup.views.ProfileController', attr = 'profilo',
& Nbsp; NOME_ROTTA = 'profilo', renderer = 'YourApp: templates / profile.jinja2')
sviluppo
Se volete contribuire a rendere eventuali modifiche pyramid_signup, è possibile eseguire i test di unità con py.test:
& Nbsp; py.test
e di verificare la copertura dei test:
& Nbsp; py.test --cov-report missing termine --cov pyramid_signup
si potrebbe anche prendere in considerazione l'esecuzione dei test in parallelo:
& Nbsp; py.test -n4
Requisiti :
- Python
- piramide
I commenti non trovato