blueprint and fabric
This commit is contained in:
5
app/main/__init__.py
Normal file
5
app/main/__init__.py
Normal file
@@ -0,0 +1,5 @@
|
||||
from flask import Blueprint
|
||||
|
||||
main = Blueprint('main', __name__)
|
||||
|
||||
from . import views
|
||||
18
app/main/forms.py
Normal file
18
app/main/forms.py
Normal file
@@ -0,0 +1,18 @@
|
||||
from flask_wtf import FlaskForm
|
||||
from wtforms import StringField, SubmitField, TextAreaField, BooleanField, PasswordField
|
||||
from wtforms.validators import DataRequired, Email
|
||||
|
||||
|
||||
class ContactForm(FlaskForm):
|
||||
name = StringField("Name: ", validators=[DataRequired()])
|
||||
email = StringField("Email: ", validators=[Email()])
|
||||
message = TextAreaField("Message", validators=[DataRequired()])
|
||||
submit = SubmitField("Submit")
|
||||
|
||||
|
||||
class LoginForm(FlaskForm):
|
||||
username = StringField("Username", validators=[DataRequired()])
|
||||
password = PasswordField("Password", validators=[DataRequired()])
|
||||
remember = BooleanField("Remember Me")
|
||||
submit = SubmitField()
|
||||
|
||||
74
app/main/views.py
Normal file
74
app/main/views.py
Normal file
@@ -0,0 +1,74 @@
|
||||
from . import main
|
||||
from flask import Flask, request, render_template, redirect, url_for, flash, make_response, session
|
||||
from flask_login import login_required, login_user, current_user, logout_user
|
||||
from app.models import User, Post, Category, Feedback, db
|
||||
from .forms import ContactForm, LoginForm
|
||||
from werkzeug.exceptions import abort
|
||||
|
||||
|
||||
@main.route('/admin/')
|
||||
@login_required
|
||||
def admin():
|
||||
return render_template('admin.html')
|
||||
|
||||
|
||||
@main.route('/')
|
||||
def index():
|
||||
name = None
|
||||
if current_user.is_authenticated:
|
||||
name = current_user.name
|
||||
return render_template('index.html', name=name)
|
||||
|
||||
|
||||
@main.route('/login/', methods=['post', 'get'])
|
||||
def login():
|
||||
if current_user.is_authenticated:
|
||||
return redirect(url_for('.admin'))
|
||||
form = LoginForm()
|
||||
if form.validate_on_submit():
|
||||
user = db.session.query(User).filter(User.username == form.username.data).first()
|
||||
if user and user.check_password(form.password.data):
|
||||
login_user(user, remember=form.remember.data)
|
||||
nextpage = request.args.get('next', url_for('.admin'))
|
||||
return redirect(nextpage)
|
||||
else:
|
||||
flash("Invalid username/password", 'error')
|
||||
return render_template('login.html', form=form)
|
||||
|
||||
|
||||
@main.route('/user/<int:user_id>/')
|
||||
def user_profile(user_id):
|
||||
user = db.session.query(User).filter(User.id == user_id).first()
|
||||
if not user:
|
||||
abort(404)
|
||||
return "Profile for user: {}".format(user.name)
|
||||
|
||||
|
||||
@main.route('/logout/')
|
||||
@login_required
|
||||
def logout():
|
||||
logout_user()
|
||||
flash("You have been logged out.")
|
||||
return redirect(url_for('.login'))
|
||||
|
||||
|
||||
@main.route('/contact/', methods=['get', 'post'])
|
||||
def contact():
|
||||
form = ContactForm()
|
||||
if form.validate_on_submit():
|
||||
name = form.name.data
|
||||
email = form.email.data
|
||||
message = form.message.data
|
||||
print(name)
|
||||
print(email)
|
||||
print(message)
|
||||
# здесь логика базы данных
|
||||
feedback = Feedback(name=name, email=email, message=message)
|
||||
db.session.add(feedback)
|
||||
db.session.commit()
|
||||
|
||||
print("\nData received. Now redirecting ...")
|
||||
flash("Message Received", "success")
|
||||
return redirect(url_for('.contact'))
|
||||
|
||||
return render_template('contact.html', form=form)
|
||||
Reference in New Issue
Block a user