Created
January 22, 2019 06:49
-
-
Save ronaldlangeveld/bdd0ba8df2eb50bbc71fb573a928d82f to your computer and use it in GitHub Desktop.
flask with sqlalchemy
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import datetime | |
from datetime import datetime | |
from flask import Flask | |
import json | |
from flask import request, url_for | |
from flask_sqlalchemy import SQLAlchemy | |
from flask import jsonify, json, request | |
from flask_cors import CORS | |
from flask_bcrypt import Bcrypt | |
from flask_jwt_extended import ( | |
JWTManager, jwt_required, create_access_token, | |
jwt_refresh_token_required, create_refresh_token, | |
get_jwt_identity, set_access_cookies, | |
set_refresh_cookies, unset_jwt_cookies, decode_token | |
) | |
app = Flask(__name__) | |
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///apidb.db' | |
app.debug = True | |
db = SQLAlchemy(app) | |
cors = CORS(app, resources={r"/api/*": {"origins": "*"}}) | |
bcrypt = Bcrypt(app) | |
#So basically you create models - that would be you database tables. SQAlchemy then creates it for you on your database. | |
class User(db.Model): | |
id = db.Column(db.Integer, primary_key=True) | |
email = db.Column(db.String(120), unique=True, nullable=False) | |
password =db.Column(db.String(124), nullable=False) | |
def __repr__(self): | |
return '<User %r>' % self.email | |
class ProfileDetails(db.Model): | |
id = db.Column(db.Integer, primary_key=True) | |
user_id = db.Column(db.Integer, db.ForeignKey('user.id')) | |
firstname = db.Column(db.String(120)) | |
lastname = db.Column(db.String(120)) | |
def __repr__(self): | |
return '<ProfileDetails %r>' % self.firstname | |
class Posts(db.Model): | |
id = db.Column(db.Integer, primary_key=True) | |
user = db.Column(db.Integer, db.ForeignKey('profile_details.id')) | |
postid = db.Column(db.String(124), nullable=False) | |
slug = db.Column(db.String(60), nullable=True) | |
title = db.Column(db.String(60), nullable=True) | |
post = db.Column(db.String(100000), nullable=True) | |
timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) | |
published = db.Column(db.Boolean, default=False) | |
publishtime = db.Column(db.DateTime, index=True, default=datetime.utcnow) | |
def __repr__(self): | |
return '<Posts %r>' % self.title |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment