# Flask_Login Stuff
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'login'
@login_manager.user_loader
def load_user(user_id):
return Users.query.get(int(user_id))
# Pass Stuff To Navbar
@app.context_processor
def base():
form = SearchForm()
return dict(form=form)
# Create Admin Page
@app.route('/admin')
@login_required
def admin():
id = current_user.id
if id == 1:
return render_template("admin.html")
else:
flash("Sorry you must be the Admin to access the Admin Page...")
return redirect(url_for('dashboard'))
# Create Search Function
@app.route('/search', methods=["POST"])
def search():
form = SearchForm()
posts = Posts.query
if form.validate_on_submit():
# Get data from submitted form
post.searched = form.searched.data
# Query the Database
posts = posts.filter(Posts.content.like('%' + post.searched + '%'))
posts = posts.order_by(Posts.title).all()
return render_template("search.html",
form=form,
searched = post.searched,
posts = posts)
# Create Login Page
@app.route('/login', methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
user = Users.query.filter_by(username=form.username.data).first()
if user:
# Check the hash
if check_password_hash(user.password_hash, form.password.data):
login_user(user)
flash("Login Succesfull!!")
return redirect(url_for('dashboard'))
else:
flash("Wrong Password - Try Again!")
else:
flash("That User Doesn't Exist! Try Again...")
return render_template('login.html', form=form)
# Create Logout Page
@app.route('/logout', methods=['GET', 'POST'])
@login_required
def logout():
logout_user()
flash("You Have Been Logged Out! Thanks For Stopping By...")
return redirect(url_for('login'))
class LoginForm(FlaskForm):
username = StringField("Username", validators=[DataRequired()])
password = PasswordField("Password", validators=[DataRequired()])
submit = SubmitField("Submit")