From 5194403d7a0623a4138f66df4c800cf44598e250 Mon Sep 17 00:00:00 2001
From: "Ethan Clay (Student)"
 <ethan2.clay@live.uwe.ac.uk@csctcloud.prxhn32zsyjupl12zde3wlfkch.cwx.internal.cloudapp.net>
Date: Fri, 11 Oct 2024 10:21:13 +0100
Subject: [PATCH] Copy layout from DO guide

---
 __pycache__/config.cpython-38.pyc             | Bin 0 -> 554 bytes
 app.py                                        |   7 -----
 app/__init__.py                               |  24 ++++++++++++++++++
 app/__pycache__/__init__.cpython-38.pyc       | Bin 0 -> 748 bytes
 app/main/__init__.py                          |   5 ++++
 app/main/__pycache__/__init__.cpython-38.pyc  | Bin 0 -> 245 bytes
 app/main/__pycache__/routes.cpython-38.pyc    | Bin 0 -> 351 bytes
 app/main/routes.py                            |   6 +++++
 app/posts/__init__.py                         |   5 ++++
 app/posts/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 248 bytes
 app/posts/__pycache__/routes.cpython-38.pyc   | Bin 0 -> 359 bytes
 app/posts/routes.py                           |   6 +++++
 app/templates/base.html                       |  10 ++++++++
 app/templates/index.html                      |   7 +++++
 app/templates/posts/index.html                |   7 +++++
 config.py                                     |  10 ++++++++
 static/core.css                               |   1 +
 17 files changed, 81 insertions(+), 7 deletions(-)
 create mode 100644 __pycache__/config.cpython-38.pyc
 delete mode 100644 app.py
 create mode 100644 app/__init__.py
 create mode 100644 app/__pycache__/__init__.cpython-38.pyc
 create mode 100644 app/main/__init__.py
 create mode 100644 app/main/__pycache__/__init__.cpython-38.pyc
 create mode 100644 app/main/__pycache__/routes.cpython-38.pyc
 create mode 100644 app/main/routes.py
 create mode 100644 app/posts/__init__.py
 create mode 100644 app/posts/__pycache__/__init__.cpython-38.pyc
 create mode 100644 app/posts/__pycache__/routes.cpython-38.pyc
 create mode 100644 app/posts/routes.py
 create mode 100644 app/templates/base.html
 create mode 100644 app/templates/index.html
 create mode 100644 app/templates/posts/index.html
 create mode 100644 config.py
 create mode 100644 static/core.css

diff --git a/__pycache__/config.cpython-38.pyc b/__pycache__/config.cpython-38.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..0c35bf379c8bcdc7751d23a7d08c1110a596a303
GIT binary patch
literal 554
zcmWIL<>g{vU|>*u&5^Fa$iVOz#6iZa3=9ko3=9m#dJGH<DGVu$ISf$@sSH_+3z)zp
zb1KV1#)XVgtnLgcOexGQ3@OabOi^qpjKK_=EH6PO`6Yu$WDGacih+S4l_82Tg&~S5
zl{t%L0c#4#EH)^cX(3~QK?-v!a~Asoj#SPRmW52>3{hMutWn%4Y{3kg?6=sQ^YhX&
z({FJFyE+HChQxcjMn>_tIEFYnIR?ANhX#38aTOQlWR|2_>FeuPu_YE1=%pmN`Dyap
z;)svWOUzA;kH5tgAD^3_Qknx|^Tfv&mL}#vWtj4dZ?UK5m1P#?=iOpXPc128W?*2r
z#Zr)1l5vYAD?c;u7JE`+acW9tQIvRappT=Evxlp1WIVD1qU4YyLV_Hfz2klTT|C`9
zogG6w{r!ShG8FMLFhGc3iuxJ(xvBc8B^il%MtaFPiIw_kIf=#D`pIB#>J?NLF)=VO
zuz}(O6m1-gJd8Yy0{@wqz~Y+hMeHE6KvK8Z6O)R;4rNctECP85<mI$XkT;8XK&n6{
cA?${*_(1;Suz`e!9V5sd76t|e4ki(104ex}9RL6T

literal 0
HcmV?d00001

diff --git a/app.py b/app.py
deleted file mode 100644
index 87b4b21..0000000
--- a/app.py
+++ /dev/null
@@ -1,7 +0,0 @@
-from flask import Flask
-
-app = Flask(__name__)
-
-@app.route("/")
-def hello_world():
-    return "<p>Hello, World!</p>"
\ No newline at end of file
diff --git a/app/__init__.py b/app/__init__.py
new file mode 100644
index 0000000..50c8aae
--- /dev/null
+++ b/app/__init__.py
@@ -0,0 +1,24 @@
+# Boilerplate code taken from https://www.digitalocean.com/community/tutorials/how-to-structure-a-large-flask-application-with-flask-blueprints-and-flask-sqlalchemy
+
+from flask import Flask
+
+from config import Config
+
+def create_app(config_class=Config):
+    app = Flask(__name__)
+    app.config.from_object(config_class)
+
+    # Initialize Flask extensions here
+
+    # Register blueprints here
+    from app.main import bp as main_bp
+    app.register_blueprint(main_bp)
+    
+    from app.posts import bp as posts_bp
+    app.register_blueprint(posts_bp, url_prefix='/posts')
+
+    @app.route('/test/')
+    def test_page():
+        return '<h1>Testing the Flask Application Factory Pattern</h1>'
+
+    return app
\ No newline at end of file
diff --git a/app/__pycache__/__init__.cpython-38.pyc b/app/__pycache__/__init__.cpython-38.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..0ee55363136ae5fd881a76cf1026f4326fee8c09
GIT binary patch
literal 748
zcmWIL<>g{vU|_iamLvTz69dCz5C<7EGcYhXFfcF_YcMb{q%fo~<}l<kMlmvi*i1Q0
zxy(__j0~yFX^bh%DJ(6FQ7kE}!3>&gFF|H#GTvf!%SkNG)?~cJ=A56GmYJT+2$Fze
zRt5$J76t|eXOQ_(3=9k<3?+=sjJ1q4j9E+zm}?jog6v^TVaj32WvyjmWT;_Wz*fTq
z7iG_7tz`y@X0g>UgY55xsNqOqUC5Zimcrh`(9BrNQo|U`pvmD^1hQI_@fK53K^2>R
zL4I*bu_og!uF|5M_=2L;w9JYsHvN*+;u8I2sPo_yNMkU_jUdOSfJ|fZt1`36FtiIv
zEiTE-OIIk#NL2v)RKc;JASW|9u_QA;Pr)rQxg@`+QXwF*q$IT{&qhDP&~7C|5gP*o
z67fr2KO;XkRX?>PBQeiNFF7Z%Qa=q8X!?l-1^V&vnR%Hd@$q^EmA5!Su8S{7OivX7
zIfe=3KBg+!<f7EXlGOObf&x98oc!d(oMJmYxJpgVB9OXU9P#maiMgrq@weEL!4Ywb
zJFO@`H$FcpD>b<!iUXuOH!(A>2;{|ELPe?RnZ+fkMe#{FrKtr)nRz8qoFFCOP`kxi
zlwVqss>ynb2Vz!ya!z7#@h#@Wf`TY^kSXy=1yLMewed*>MI0#pEn;V2V7SGFa5acu
zEClilBL^c7D-R<V6AvRF69*#~bCCc81B0I?>n&Drh=9FP1WK<(pkxV_MGH-c=^Qq>
U`6;D2sdgY`#UL;7F!3+}0BPE@761SM

literal 0
HcmV?d00001

diff --git a/app/main/__init__.py b/app/main/__init__.py
new file mode 100644
index 0000000..f1c69e2
--- /dev/null
+++ b/app/main/__init__.py
@@ -0,0 +1,5 @@
+from flask import Blueprint
+
+bp = Blueprint('main', __name__)
+
+from app.main import routes
\ No newline at end of file
diff --git a/app/main/__pycache__/__init__.cpython-38.pyc b/app/main/__pycache__/__init__.cpython-38.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..2e52d4ba6b0cc785344894599fab45b46702aad7
GIT binary patch
literal 245
zcmWIL<>g{vU|=})nj<}mfq~&Mh=Yuo85kHG7#J9e)fgBUQW#Pga~N_NqZk<(QW;a2
zQkj~WqL@<{QkZjCa#^ET85vSof*CYfUxG}~WW2@clvA2oP?VWha*HK5F*8q-@fKTA
zerZW+v7aW}E!MQ0#NzBCCI$wETO9H6d5O8H@$t8qk_v8dBo-9tfix7cFfcHzWGLcf
zV1N+6bo4Xwb5r$GOEMDkjP#Oo5-at=#^@&&6zGGr=*P!r=4F<|$LkeT-r}&y%}*)K
QNws4Hc>!b?4-*#?09=4P=l}o!

literal 0
HcmV?d00001

diff --git a/app/main/__pycache__/routes.cpython-38.pyc b/app/main/__pycache__/routes.cpython-38.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..a8a49a225f7c9581974ad5ae76d43a0cd13d061b
GIT binary patch
literal 351
zcmWIL<>g{vU|?AAh9kY6fq~&Mh=Yuo85kHG7#J9e^%xi!QW#Pga~N_NqZk=MY^EHh
zT;?cdMut@81uQAd3mH>bQdnCUni->5Q`mwTG}&K*Oj^l!i@zu}FD11oz9cobASbaT
zRg>`+Q&Pb%M*U=v0%Xj@z`)=PvW|m+fuV#Ug|V42m_d`tuZk-(FD11?FQX(krwF8I
zB|{M#0|SKkrKO*dpPQ<mT9T2NXQY>$lUS*rmXlbVt)Ey>pr4zVnWtZrUs{q{tXEKZ
zixq4T3&;+TISfoiAglZ|*>16d^%Q}8e2XKopg<3#vk0W}7AsgkSS7+*2#cM8f#DX1
XO>TZlX-=vgBgkBk!+02Zm^c^#Q+7&T

literal 0
HcmV?d00001

diff --git a/app/main/routes.py b/app/main/routes.py
new file mode 100644
index 0000000..81fa7a7
--- /dev/null
+++ b/app/main/routes.py
@@ -0,0 +1,6 @@
+from flask import render_template
+from app.main import bp
+
+@bp.route('/')
+def index():
+    return render_template('index.html')
\ No newline at end of file
diff --git a/app/posts/__init__.py b/app/posts/__init__.py
new file mode 100644
index 0000000..1b2c0d7
--- /dev/null
+++ b/app/posts/__init__.py
@@ -0,0 +1,5 @@
+from flask import Blueprint
+
+bp = Blueprint('posts', __name__)
+
+from app.posts import routes
\ No newline at end of file
diff --git a/app/posts/__pycache__/__init__.cpython-38.pyc b/app/posts/__pycache__/__init__.cpython-38.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..515ccdf6896ca63e8f65686047a57f4eeaf91c77
GIT binary patch
literal 248
zcmWIL<>g{vU|?{5%aI<#z`*br#6iZ)3=9ko3=9m#Y77hvDGVu$ISjdsQH+cXsf;O1
zsZ7mGQOqd}Da<)6xvWvFj0`C(!3>(LFF__~GT!2J$|+4PD9X$$iDE6tFD@z8WW2>z
zlwVqsTI{FEc8fJFC$TuYh>3xL;TA`Hd|qO1YJB`Hrlf*foQVYmdSD$zAP1~uDB@sX
zfDpfQ^)vEwQ}t6zG7|HQ^pbNDEA_$V=qDBw=!5m>$H!;pWtPOp>lIYq;;_lhPbtkw
RwPOVNf`x&Bfrp8U2>_p9J)r;q

literal 0
HcmV?d00001

diff --git a/app/posts/__pycache__/routes.cpython-38.pyc b/app/posts/__pycache__/routes.cpython-38.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..b418aec72a8ba5ddade836c9160f461f37f2efbe
GIT binary patch
literal 359
zcmWIL<>g{vU|=}=mLt8Lfq~&Mh=Yuo85kHG7#J9e^%xi!QW#Pga~N_NqZk=MY^EHh
zT;?cdMut@81uQAd3mH>bQdnCUni->5Q`mwTG}&K*Oj^l!i@zu}FD11oz9cobASbaT
zRg>`+Q&Pb%M*U=v0%Xj@z`)=PvW|m+fuV#Ug|V42m_d`tuS%dGzqq7WKQk{SwL&kW
zBsZrBq;w@i5gP*og!rYcpOK%Ns-Ietk(g(smz<MWsh^gUSe&h&SWuu3(O#5aT9R6<
zS5SG26>Jg<$SROQ3`|8J8~rrdZn1(j6@ff{i!-sHKo6|72&D8DE7$<AQiR127CQq2
b!z~V*-29Z%oK!nTkij6Q@i6i*aWDb^@jFf|

literal 0
HcmV?d00001

diff --git a/app/posts/routes.py b/app/posts/routes.py
new file mode 100644
index 0000000..95e1be7
--- /dev/null
+++ b/app/posts/routes.py
@@ -0,0 +1,6 @@
+from flask import render_template
+from app.posts import bp
+
+@bp.route('/')
+def index():
+    return render_template('posts/index.html')
diff --git a/app/templates/base.html b/app/templates/base.html
new file mode 100644
index 0000000..013b57a
--- /dev/null
+++ b/app/templates/base.html
@@ -0,0 +1,10 @@
+<body>
+<nav>
+    <a href="{{ url_for('main.index') }}">HOME</a>
+    <a href="#">Posts</a>
+</nav>
+<hr>
+<div class="content">
+    {% block content %} {% endblock %}
+</div>
+</body>
\ No newline at end of file
diff --git a/app/templates/index.html b/app/templates/index.html
new file mode 100644
index 0000000..c5a42d6
--- /dev/null
+++ b/app/templates/index.html
@@ -0,0 +1,7 @@
+{% extends 'base.html' %}
+
+{% block content %}
+    <div class="content">
+        <h2>Index.html</h2>
+    </div>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/posts/index.html b/app/templates/posts/index.html
new file mode 100644
index 0000000..ad42a40
--- /dev/null
+++ b/app/templates/posts/index.html
@@ -0,0 +1,7 @@
+{% extends 'base.html' %}
+
+{% block content %}
+    <div class="content">
+        <h2>Index of posts.html</h2>
+    </div>
+{% endblock %}
\ No newline at end of file
diff --git a/config.py b/config.py
new file mode 100644
index 0000000..ec3b9f6
--- /dev/null
+++ b/config.py
@@ -0,0 +1,10 @@
+import os
+
+basedir = os.path.abspath(os.path.dirname(__file__))
+
+
+class Config:
+    SECRET_KEY = os.environ.get('SECRET_KEY')
+    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URI')\
+        or 'sqlite:///' + os.path.join(basedir, 'app.db')
+    SQLALCHEMY_TRACK_MODIFICATIONS = False
\ No newline at end of file
diff --git a/static/core.css b/static/core.css
new file mode 100644
index 0000000..e89b7b7
--- /dev/null
+++ b/static/core.css
@@ -0,0 +1 @@
+/* Core CSS Style types */
\ No newline at end of file
-- 
GitLab