Skip to content

Commit 6b65f11

Browse files
committed
add appendix of user model
1 parent 054fb48 commit 6b65f11

File tree

24 files changed

+641
-0
lines changed

24 files changed

+641
-0
lines changed

appendix/application/Pipfile

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
[[source]]
2+
url = "https://pypi.python.org/simple"
3+
verify_ssl = true
4+
name = "pypi"
5+
6+
[packages]
7+
flask = "*"
8+
flask-sqlalchemy = "*"
9+
flask-script = "*"
10+
bcrypt = "*"
11+
12+
[dev-packages]
13+
14+
[requires]
15+
python_version = "3.6"

appendix/application/Pipfile.lock

Lines changed: 179 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from flask import Flask
2+
from flask_sqlalchemy import SQLAlchemy
3+
4+
app = Flask(__name__)
5+
app.config.from_object('flask_blog.config')
6+
7+
db = SQLAlchemy(app)
8+
9+
from flask_blog.views.entries import entry
10+
from flask_blog.views.users import user
11+
12+
app.register_blueprint(entry, url_prefix='/users')
13+
app.register_blueprint(user)
14+
15+
from flask_blog.views import views
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
SQLALCHEMY_DATABASE_URI = 'sqlite:///flask_blog.db'
2+
SQLALCHEMY_TRACK_MODIFICATIONS = True
3+
DEBUG = True
4+
SECRET_KEY = 'secret key'
5+
USERNAME = 'john'
6+
PASSWORD = 'due123'
16 KB
Binary file not shown.

appendix/application/flask_blog/models/__init__.py

Whitespace-only changes.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from flask_blog import db
2+
from datetime import datetime
3+
4+
class Entry(db.Model):
5+
from flask_blog.models.users import User
6+
__tablename__ = 'entries'
7+
id = db.Column(db.Integer, primary_key=True)
8+
title = db.Column(db.String(50), unique=True)
9+
text = db.Column(db.Text)
10+
user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
11+
user = db.relationship('User', foreign_keys=user_id)
12+
created_at = db.Column(db.DateTime)
13+
14+
def __init__(self, title=None, text=None, user_id=None):
15+
self.title = title
16+
self.text = text
17+
self.user_id = user_id
18+
self.created_at = datetime.utcnow()
19+
20+
def __repr__(self):
21+
return '<Entry id:{} title:{} text:{} user_id:{}>'.format(self.id, self.title, self.text, self.user_id)
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from flask_blog import db
2+
from datetime import datetime
3+
import bcrypt
4+
import pdb
5+
6+
class User(db.Model):
7+
__tablename__ = 'users'
8+
id = db.Column(db.Integer, primary_key=True)
9+
username = db.Column(db.String(50))
10+
password = db.Column(db.String(50))
11+
salt = db.Column(db.String(50))
12+
created_at = db.Column(db.DateTime)
13+
14+
def __init__(self, username=None, password=None):
15+
self.username = username
16+
self.salt = bcrypt.gensalt().decode()
17+
self.password = bcrypt.hashpw(password.encode(), self.salt.encode()).decode()
18+
self.created_at = datetime.utcnow()
19+
20+
def __repr__(self):
21+
return '<Entry id:{} username:{}>'.format(self.id, self.username)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from flask_script import Command
2+
from flask_blog import db
3+
4+
5+
class InitDB(Command):
6+
"create database"
7+
8+
def run(self):
9+
db.create_all()
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
.card {
2+
margin: 0.25rem;
3+
}
4+
5+
.blog-body {
6+
padding: 1.25em;
7+
}
8+
9+
* {
10+
font-family: 'Mplus 1p';
11+
}

0 commit comments

Comments
 (0)