· 5 years ago · May 06, 2020, 04:38 PM
1# app.py
2
3import os
4from flask import Flask, request, jsonify
5from flask_sqlalchemy import SQLAlchemy
6from flask_migrate import Migrate
7
8from models_test import secret
9
10print(secret)
11
12
13app = Flask(__name__)
14# app.config.from_object(os.getenv('APP_SETTINGS'))
15app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv("DATABASE_URL")
16app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
17
18db = SQLAlchemy(app)
19migrate = Migrate(app, db)
20
21
22if __name__ == '__main__':
23 app.run(port=8080, debug=True)
24
25
26
27
28# models.py
29from app import db
30
31class Book(db.Model):
32 __tablename__ = "books"
33
34 id = db.Column(db.Integer, primary_key=True)
35 name = db.Column(db.String())
36 author = db.Column(db.String())
37 published = db.Column(db.String())
38
39 def __init__(self, name, author, published):
40 self.name = name
41 self.author = author
42 self.published = published
43
44 def __repr__(self):
45 return f"<{name}>"
46
47 def serialize(self):
48 return {
49 "id": self.id,
50 "name": self.name,
51 "author": self.author,
52 "published": self.published,
53 }
54
55
56
57
58
59
60# models_test.py
61secret = "this is a secret"
62
63
64
65
66# .env
67FLASK_APP=app.py
68APP_SETTINGS=config.DevelopmentConfig
69DATABASE_URL=postgresql://localhost/flask-tutorial
70
71
72
73# __init.py__
74__version__ = '0.1.0'
75
76
77# config.py
78import os
79
80basedir = os.path.abspath(os.path.dirname(__file__))
81
82class Config(object):
83 DEBUG = False
84 DEVELOPMENT = False
85 TESTING = False
86 CSRF_ENABLE = True
87 SECRET_KEY = "this-is-a-secret"
88 SQLALCHEMY_DATABASE_URI = os.getenv("DATABASE_URL")
89
90
91class ProductionConfig(Config):
92 DEBUG = False
93
94
95class StagingConfig(Config):
96 DEBUG = True
97 DEVELOPMENT = True
98
99
100class DevelopmentConfig(Config):
101 DEBUG = True
102 DEVELOPMENT = True
103
104
105class TestingConfig(Config):
106 TESTING = True