]>
git.datanom.net - flask-test.git/blob - app/views.py
1 from flask
import render_template
, flash
, redirect
, session
, url_for
, request
, g
2 from flask_login
import login_user
, logout_user
, current_user
, login_required
3 from datetime
import datetime
4 from app
import app
, db
, lm
, oid
5 from .forms
import LoginForm
, EditForm
6 from .models
import User
11 return User
.query
.get(int(id))
17 if g
.user
.is_authenticated
:
18 g
.user
.last_seen
= datetime
.utcnow()
19 db
.session
.add(g
.user
)
23 @app.errorhandler(404)
24 def not_found_error(error
):
25 return render_template('404.html'), 404
28 @app.errorhandler(500)
29 def internal_error(error
):
31 return render_template('500.html'), 500
41 'author': {'nickname': 'John'},
42 'body': 'Beautiful day in Portland!'
45 'author': {'nickname': 'Susan'},
46 'body': 'The Avengers movie was so cool!'
49 return render_template('index.html',
55 @app.route('/login', methods
=['GET', 'POST'])
58 if g
.user
is not None and g
.user
.is_authenticated
:
59 return redirect(url_for('index'))
61 if form
.validate_on_submit():
62 session
['remember_me'] = form
.remember_me
.data
63 return oid
.try_login(form
.openid
.data
, ask_for
=['nickname', 'email'])
64 return render_template('login.html',
67 providers
=app
.config
['OPENID_PROVIDERS'])
71 def after_login(resp
):
72 if resp
.email
is None or resp
.email
== "":
73 flash('Invalid login. Please try again.')
74 return redirect(url_for('login'))
75 user
= User
.query
.filter_by(email
=resp
.email
).first()
77 nickname
= resp
.nickname
78 if nickname
is None or nickname
== "":
79 nickname
= resp
.email
.split('@')[0]
80 nickname
= User
.make_unique_nickname(nickname
)
81 user
= User(nickname
=nickname
, email
=resp
.email
)
85 if 'remember_me' in session
:
86 remember_me
= session
['remember_me']
87 session
.pop('remember_me', None)
88 login_user(user
, remember
=remember_me
)
89 return redirect(request
.args
.get('next') or url_for('index'))
95 return redirect(url_for('login'))
98 @app.route('/user/<nickname>')
101 user
= User
.query
.filter_by(nickname
=nickname
).first()
103 flash('User %s not found.' % nickname
)
104 return redirect(url_for('index'))
106 {'author': user
, 'body': 'Test post #1'},
107 {'author': user
, 'body': 'Test post #2'}
109 return render_template('user.html',
114 @app.route('/edit', methods
=['GET', 'POST'])
117 form
= EditForm(g
.user
.nickname
)
118 if form
.validate_on_submit():
119 g
.user
.nickname
= form
.nickname
.data
120 g
.user
.about_me
= form
.about_me
.data
121 db
.session
.add(g
.user
)
123 flash('Your changes have been saved.')
124 return redirect(url_for('edit'))
125 elif request
.method
!= "POST":
126 form
.nickname
.data
= g
.user
.nickname
127 form
.about_me
.data
= g
.user
.about_me
128 return render_template('edit.html', form
=form
)
This page took 0.079881 seconds and 6 git commands to generate.