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