commit
b94876f39d
@ -0,0 +1,2 @@
|
|||||||
|
venv/
|
||||||
|
__pycache__/
|
Binary file not shown.
@ -0,0 +1,63 @@
|
|||||||
|
from flask import Flask, render_template, url_for, flash, redirect
|
||||||
|
from forms import RegistrationForm, LoginForm
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
app.config['SECRET_KEY'] = 'db3746b2ffa650b3804e4316d227f853'
|
||||||
|
|
||||||
|
posts = [
|
||||||
|
{
|
||||||
|
'pagetitle': 'home page'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
navbaritems = [
|
||||||
|
|
||||||
|
{
|
||||||
|
'name': 'home',
|
||||||
|
'url': 'home'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'login',
|
||||||
|
'url': 'login'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'register',
|
||||||
|
'url': 'register'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/")
|
||||||
|
@app.route("/home")
|
||||||
|
def home():
|
||||||
|
return render_template('home.html', posts=posts, navbaritems=navbaritems)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/about")
|
||||||
|
def about():
|
||||||
|
return render_template('about.html', title='About', posts=posts, navbaritems=navbaritems)
|
||||||
|
|
||||||
|
@app.route("/register", methods=['GET', 'POST'])
|
||||||
|
def register():
|
||||||
|
form = RegistrationForm()
|
||||||
|
if form.validate_on_submit():
|
||||||
|
flash(f'Account created for {form.username.data}!')
|
||||||
|
return redirect(url_for('home'))
|
||||||
|
return render_template('register.html', title='Register', form=form)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/login", methods=['GET', 'POST'])
|
||||||
|
def login():
|
||||||
|
form = LoginForm()
|
||||||
|
if form.validate_on_submit():
|
||||||
|
if form.email.data == 'admin' and form.password.data == 'admin':
|
||||||
|
flash('You have been log in !')
|
||||||
|
return redirect(url_for('home'))
|
||||||
|
else:
|
||||||
|
flash('Login Unsuccessful')
|
||||||
|
return render_template('login.html', title='Login', form=form)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
app.run(debug=True, port=8700)
|
@ -0,0 +1,24 @@
|
|||||||
|
from flask_wtf import FlaskForm
|
||||||
|
from wtforms import StringField, PasswordField, SubmitField, BooleanField
|
||||||
|
from wtforms.validators import DataRequired, Length, Email, EqualTo
|
||||||
|
|
||||||
|
|
||||||
|
class RegistrationForm(FlaskForm):
|
||||||
|
username = StringField('Username',
|
||||||
|
validators=[DataRequired(), Length(min=2, max=20)])
|
||||||
|
email = StringField('Email',
|
||||||
|
validators=[DataRequired(), Email()])
|
||||||
|
|
||||||
|
password = PasswordField('Password' , validators=[DataRequired()])
|
||||||
|
confirm_password = PasswordField('Confirm Password' ,
|
||||||
|
validators=[DataRequired(), EqualTo('password')])
|
||||||
|
submit =SubmitField('Sign Up')
|
||||||
|
|
||||||
|
|
||||||
|
class LoginForm(FlaskForm):
|
||||||
|
email = StringField('Email',
|
||||||
|
validators=[DataRequired(), Email()])
|
||||||
|
|
||||||
|
password = PasswordField('Password' , validators=[DataRequired()])
|
||||||
|
remember = BooleanField('Remember Me')
|
||||||
|
submit =SubmitField('Login')
|
Binary file not shown.
@ -0,0 +1,10 @@
|
|||||||
|
{% extends "layout.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{% for post in posts %}
|
||||||
|
<p> {{ post.universe }} </p>
|
||||||
|
<p> {{ post.powerlevel }} </p>
|
||||||
|
<i> {{ post.date_posted }} </i>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% endblock content %}
|
@ -0,0 +1,8 @@
|
|||||||
|
{% extends "layout.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{% for post in posts %}
|
||||||
|
<h1>{{ post.pagetitle }}</h1>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% endblock content %}
|
@ -0,0 +1,40 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" href="{{ url_for('static', filename='main.css')}}">
|
||||||
|
|
||||||
|
{% if title %}
|
||||||
|
<title>Blog post - {{ title }}</title>
|
||||||
|
{% else %}
|
||||||
|
<title>Blog posts</title>
|
||||||
|
{% endif %}
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
{% block navbar %}
|
||||||
|
{% for post in navbaritems %}
|
||||||
|
<li><a href="{{ post.url }}"> {{ post.name }} </a></li>
|
||||||
|
{% endfor %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% with messages = get_flashed_messages(with_categories=true) %}
|
||||||
|
{% if messages %}
|
||||||
|
{% for caterogy, message in messages %}
|
||||||
|
<div>
|
||||||
|
{{ message }}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endwith %}
|
||||||
|
|
||||||
|
<div>
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{% endblock %}
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
@ -0,0 +1,61 @@
|
|||||||
|
{% extends "layout.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<form method="POST" action="">
|
||||||
|
{{ form.hidden_tag() }}
|
||||||
|
<fieldset>
|
||||||
|
<legend>Login</legend>
|
||||||
|
<div>
|
||||||
|
{{ form.email.label() }}
|
||||||
|
{% if form.email.errors %}
|
||||||
|
{{ form.email() }}
|
||||||
|
<div>
|
||||||
|
{% for errors in form.email.errors %}
|
||||||
|
<span>{{ error }}</span>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
{{ form.email() }}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{ form.password.label() }}
|
||||||
|
{% if form.password.errors %}
|
||||||
|
{{ form.password()}}
|
||||||
|
<div>
|
||||||
|
{% for errors in form.password.errors %}
|
||||||
|
<span>{{ error }}</span>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
{{ form.password() }}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{ form.remember() }}
|
||||||
|
{{ form.remember.label() }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</fieldset>
|
||||||
|
<div>
|
||||||
|
{{ form.submit() }}
|
||||||
|
</div>
|
||||||
|
<small>
|
||||||
|
<a href="#">Forgot Password</a>
|
||||||
|
</small>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<small>Need an Account ? <a href="{{ url_for('register') }}">Sign Up Now</a></small>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock content %}
|
@ -0,0 +1,82 @@
|
|||||||
|
{% extends "layout.html" %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<form method="POST" action="">
|
||||||
|
{{ form.hidden_tag() }}
|
||||||
|
<fieldset>
|
||||||
|
<legend>Join Today</legend>
|
||||||
|
<div>
|
||||||
|
{{ form.username.label() }}
|
||||||
|
{% if form.username.errors %}
|
||||||
|
{{ form.username()}}
|
||||||
|
<div>
|
||||||
|
{% for errors in form.username.errors %}
|
||||||
|
<span>{{ error }}</span>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
{{ form.username() }}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div>
|
||||||
|
{{ form.email.label() }}
|
||||||
|
{% if form.email.errors %}
|
||||||
|
{{ form.email() }}
|
||||||
|
<div>
|
||||||
|
{% for errors in form.email.errors %}
|
||||||
|
<span>{{ error }}</span>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
{{ form.email() }}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{ form.password.label() }}
|
||||||
|
{% if form.password.errors %}
|
||||||
|
{{ form.password()}}
|
||||||
|
<div>
|
||||||
|
{% for errors in form.password.errors %}
|
||||||
|
<span>{{ error }}</span>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
{{ form.password() }}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{ form.confirm_password.label() }}
|
||||||
|
{% if form.confirm_password.errors %}
|
||||||
|
{{ form.confirm_password()}}
|
||||||
|
<div>
|
||||||
|
{% for errors in form.confirm_password.errors %}
|
||||||
|
<span>{{ error }}</span>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
{{ form.confirm_password() }}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<div>
|
||||||
|
{{ form.submit() }}
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<small>Already Have an Account ? <a href="{{ url_for('login') }}">Sign In</a></small>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock content %}
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue