Compare commits
6 Commits
06cc7c5708
...
37634eef6a
Author | SHA1 | Date |
---|---|---|
![]() |
37634eef6a | 2 weeks ago |
![]() |
960e55bdae | 2 weeks ago |
![]() |
5b0feb63ac | 2 weeks ago |
![]() |
a6218563be | 2 weeks ago |
![]() |
5d929dc5ba | 3 weeks ago |
![]() |
1294564127 | 3 weeks ago |
Binary file not shown.
Binary file not shown.
@ -1,97 +0,0 @@
|
||||
|
||||
|
||||
from datetime import datetime
|
||||
from flask import Flask, render_template, url_for, flash, redirect
|
||||
from flask_sqlalchemy import SQLAlchemy # type: ignore
|
||||
from forms import RegistrationForm, LoginForm
|
||||
app = Flask(__name__)
|
||||
|
||||
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 = [
|
||||
{
|
||||
'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, host='0.0.0.0', port=8700)
|
@ -0,0 +1,10 @@
|
||||
|
||||
from flask import Flask
|
||||
from flask_sqlalchemy import SQLAlchemy # type: ignore
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config['SECRET_KEY'] = 'db3746b2ffa650b3804e4316d227f853'
|
||||
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///blogsite.db'
|
||||
db = SQLAlchemy(app)
|
||||
|
||||
from blogapp import routes
|
@ -0,0 +1,27 @@
|
||||
from datetime import datetime
|
||||
from blogapp import db
|
||||
|
||||
|
||||
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}')"
|
@ -0,0 +1,58 @@
|
||||
from flask import render_template, url_for, flash, redirect
|
||||
from blogapp import app
|
||||
from blogapp.forms import RegistrationForm, LoginForm
|
||||
from blogapp.models import User, Post
|
||||
|
||||
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)
|
Binary file not shown.
@ -0,0 +1,5 @@
|
||||
|
||||
from blogapp import app
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(debug=True, host="0.0.0.0", port=8700)
|
Loading…
Reference in new issue