|
|
@ -1,9 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from datetime import datetime
|
|
|
|
from flask import Flask, render_template, url_for, flash, redirect
|
|
|
|
from flask import Flask, render_template, url_for, flash, redirect
|
|
|
|
|
|
|
|
from flask_sqlalchemy import SQLAlchemy # type: ignore
|
|
|
|
from forms import RegistrationForm, LoginForm
|
|
|
|
from forms import RegistrationForm, LoginForm
|
|
|
|
|
|
|
|
|
|
|
|
app = Flask(__name__)
|
|
|
|
app = Flask(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
app.config['SECRET_KEY'] = 'db3746b2ffa650b3804e4316d227f853'
|
|
|
|
app.config['SECRET_KEY'] = 'db3746b2ffa650b3804e4316d227f853'
|
|
|
|
|
|
|
|
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///blogsite.db'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
db = SQLAlchemy(app)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class User(db.Model):
|
|
|
|
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
|
|
|
|
|
|
username = db.Column(db.String(20), unique=True, nullable=False)
|
|
|
|
|
|
|
|
email = db.Column(db.String(120), unique=True, nullable=False)
|
|
|
|
|
|
|
|
image_file = db.Column(db.String(20), nullable=False,
|
|
|
|
|
|
|
|
default='default.jpg')
|
|
|
|
|
|
|
|
password = db.Column(db.String(60), nullable=False)
|
|
|
|
|
|
|
|
posts = db.relationship('Post', backref='author', lazy=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __repr__(self):
|
|
|
|
|
|
|
|
return f"User('{self.username}', '{self.image_file}')"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Post(db.Model):
|
|
|
|
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
|
|
|
|
|
|
title = db.Column(db.String(100), nullable=False)
|
|
|
|
|
|
|
|
date_posted = db.Column(db.DateTime, nullable=False,
|
|
|
|
|
|
|
|
default=datetime.utcnow)
|
|
|
|
|
|
|
|
content = db.Column(db.Text, nullable=False)
|
|
|
|
|
|
|
|
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __repr__(self):
|
|
|
|
|
|
|
|
return f"Post('{self.title}', '{self.date_posted}')"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
posts = [
|
|
|
|
posts = [
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -12,7 +45,7 @@ posts = [
|
|
|
|
]
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
navbaritems = [
|
|
|
|
navbaritems = [
|
|
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
'name': 'home',
|
|
|
|
'name': 'home',
|
|
|
|
'url': 'home'
|
|
|
|
'url': 'home'
|
|
|
@ -38,6 +71,7 @@ def home():
|
|
|
|
def about():
|
|
|
|
def about():
|
|
|
|
return render_template('about.html', title='About', posts=posts, navbaritems=navbaritems)
|
|
|
|
return render_template('about.html', title='About', posts=posts, navbaritems=navbaritems)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route("/register", methods=['GET', 'POST'])
|
|
|
|
@app.route("/register", methods=['GET', 'POST'])
|
|
|
|
def register():
|
|
|
|
def register():
|
|
|
|
form = RegistrationForm()
|
|
|
|
form = RegistrationForm()
|
|
|
@ -60,4 +94,4 @@ def login():
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
if __name__ == '__main__':
|
|
|
|
app.run(debug=True, port=8700)
|
|
|
|
app.run(debug=True, host='0.0.0.0', port=8700)
|
|
|
|