Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ronaldlangeveld/bdd0ba8df2eb50bbc71fb573a928d82f to your computer and use it in GitHub Desktop.
Save ronaldlangeveld/bdd0ba8df2eb50bbc71fb573a928d82f to your computer and use it in GitHub Desktop.
flask with sqlalchemy
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