To expand on Anthony's reference, I'd start at the beginning of the book 
with
<URL:http://web2py.com/books/default/chapter/29/03/overview#Adding-authentication>
for a very simple example.

On Thursday, March 30, 2017 at 12:55:56 PM UTC-7, Happy Rob wrote:
>
> This is a quick one here, It's (extremely) ugly and basic, but should give 
> you a framework to figure out from.
> I did it on pythonanywhere for free which is pretty cool. The template 
> below should work on local or others though.
>
> No email out or $ because the pythonanywhere free version doesn't allow 
> that.
>
> To access the members list it's under app admin - note web2py does a lot 
> of the setting up of tables and stuff for you.
>

Auth tables are usually set up as a result of the sample code in 
models/db.py.
 

> I had to put the auth setting stuff in the controller because I couldn't 
> get the re-directs to work any other way. (frustrating as heck).
> Also the views are not b1 or b2, they are e/b1 or e/b2 so that it's 
> created in a folder. (These caught me out for a long time).
>


Yes, because views are referenced as {application 
directory}/vies/{controller name}/{function name}
(function name and action name are near-synonyms; some functions in a 
controller aren't actions, though)


> To access, go to https://XXXXXX.pythonanywhere.com/c/e/b1 
> <https://xxxxxx.pythonanywhere.com/c/e/b1>
>
> Create App: C
>
> Create Model: a.py
>
> ..................................................................
>
> db = DAL ('sqlite://storage.sqlite')
>
> from gluon.tools import Auth
>
> auth = Auth(db)
>
> auth.define_tables(username=False,signature=False)
>
> ..................................................................
>
> Create Controller: e.py
>
> ..................................................................
>
> #to access, go to https://XXXXXX.pythonanywhere.com/c/e/b1 
> <https://xxxxxx.pythonanywhere.com/c/e/b1>
>
> #setting stuff
>
> auth.settings.controller = 'e'
>
> auth.settings.on_failed_authorization = URL('e', 'b1')
>
> auth.settings.login_url = URL('b3')
>
> #home page
>
> def b1():
>
>    display_page = XML('<h1>Home Page</h1><a 
> href="b2">Registration</a><br><a href="b4">Login to members</a>')
>
>    return dict(display_page = display_page)
>
> #regn page
>
> def b2():
>
>    display_page = XML('<h1>Registration Page</h1><a href="b4">or Skip this 
> page and Login to members page</a>')
>
>    return dict(display_page = display_page, 
> form=auth.register(next=URL('b4')))
>
> #login page
>
> def b3():
>
>    display_page = XML('<h1>Login Page</h1>')
>
>    return dict(display_page = display_page, 
> form=auth.login(next=URL('b4')))
>
> #members page
>
> @auth.requires_login()
>
> def b4():
>
>    display_page = XML('<h1>Members Page</h1><a href="b5">Logout</a>')
>
>    return dict(display_page = display_page)
>
> def b5():
>
>    display_page = XML('<h1>Logging Out</h1>')
>
>    return dict(display_page = display_page, form=auth.logout(next=URL('b1'
> )))
>
> ..................................................................
>
> Create a new view: e/b1............
>
> {{=display_page}}
>
> ................................
>
> Create a new view: e/b2............
>
> {{=display_page}}
>
> {{=form}}
>
> ................................
>
> Create a new view: e/b3............
>
> {{=display_page}}
>
> {{=form}}
>
> ................................
>
> Create a new view: e/b4............
>
> {{=display_page}}
>
> ................................
>
> Create a new view: e/b5............
>
> {{=display_page}}
>
> {{=form}}
> ................................
>
>
Thanks for an additional example! 

/dps
 

-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to