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