From 5a99b4af635842081ae0ad46ebec320f29e0d106 Mon Sep 17 00:00:00 2001 From: Perfectfire33 Date: Wed, 29 Jun 2022 18:19:03 -0400 Subject: [PATCH] Got new flaskr tutorial finished with blog and dashboard --- .idea/workspace.xml | 381 +++++++++++++++----- Readme.txt | 2 +- __pycache__/flaskr.cpython-37.pyc | Bin 7026 -> 6126 bytes flaskr.db | Bin 126976 -> 126976 bytes flaskr.py | 54 +-- flaskr/Readme2 | 13 + flaskr/__init__.py | 48 +++ flaskr/__pycache__/__init__.cpython-37.pyc | Bin 0 -> 1096 bytes flaskr/__pycache__/auth.cpython-37.pyc | Bin 0 -> 2467 bytes flaskr/__pycache__/blog.cpython-37.pyc | Bin 0 -> 2621 bytes flaskr/__pycache__/dashboard.cpython-37.pyc | Bin 0 -> 484 bytes flaskr/__pycache__/db.cpython-37.pyc | Bin 0 -> 1343 bytes flaskr/auth.py | 99 +++++ flaskr/blog.py | 101 ++++++ flaskr/dashboard.py | 11 + flaskr/db.py | 43 +++ flaskr/db2.py | 6 + schema.sql => flaskr/schema.sql | 14 +- flaskr/static/style.css | 26 ++ flaskr/templates/auth/login.html | 15 + flaskr/templates/auth/register.html | 15 + flaskr/templates/base.html | 25 ++ flaskr/templates/blog/create.html | 15 + flaskr/templates/blog/index.html | 28 ++ flaskr/templates/blog/update.html | 20 + flaskr/templates/dashboard.html | 13 + instance/flaskr.sqlite | Bin 0 -> 135168 bytes static/style.css | 52 --- static/style2.css | 0 templates/base.html | 24 ++ templates/dashboard.html | 2 + templates/register.html | 15 + 32 files changed, 844 insertions(+), 178 deletions(-) create mode 100644 flaskr/Readme2 create mode 100644 flaskr/__init__.py create mode 100644 flaskr/__pycache__/__init__.cpython-37.pyc create mode 100644 flaskr/__pycache__/auth.cpython-37.pyc create mode 100644 flaskr/__pycache__/blog.cpython-37.pyc create mode 100644 flaskr/__pycache__/dashboard.cpython-37.pyc create mode 100644 flaskr/__pycache__/db.cpython-37.pyc create mode 100644 flaskr/auth.py create mode 100644 flaskr/blog.py create mode 100644 flaskr/dashboard.py create mode 100644 flaskr/db.py create mode 100644 flaskr/db2.py rename schema.sql => flaskr/schema.sql (96%) create mode 100644 flaskr/static/style.css create mode 100644 flaskr/templates/auth/login.html create mode 100644 flaskr/templates/auth/register.html create mode 100644 flaskr/templates/base.html create mode 100644 flaskr/templates/blog/create.html create mode 100644 flaskr/templates/blog/index.html create mode 100644 flaskr/templates/blog/update.html create mode 100644 flaskr/templates/dashboard.html create mode 100644 instance/flaskr.sqlite delete mode 100644 static/style.css create mode 100644 static/style2.css create mode 100644 templates/base.html create mode 100644 templates/register.html diff --git a/.idea/workspace.xml b/.idea/workspace.xml index b42d182..b8c0269 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,7 +2,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + @@ -25,73 +49,82 @@ - + - - + + + + + - + - - + + + + + - - + + - - + + - + - - + + + + + - + - - + + - + - - + + - + - - + + - + - - + + @@ -111,6 +144,7 @@ delete download_ default_path + created @@ -131,11 +165,32 @@ @@ -150,34 +205,59 @@ - - - + + + + + + + + + + + + + - - - + + + + + + + + + + + - - + + + + + + + + + - - + + - + + + + +{% endblock %} \ No newline at end of file diff --git a/flaskr/templates/auth/register.html b/flaskr/templates/auth/register.html new file mode 100644 index 0000000..a3c73cc --- /dev/null +++ b/flaskr/templates/auth/register.html @@ -0,0 +1,15 @@ +{% extends 'base.html' %} + +{% block header %} +

{% block title %}Register{% endblock %}

+{% endblock %} + +{% block content %} +
+ + + + + +
+{% endblock %} \ No newline at end of file diff --git a/flaskr/templates/base.html b/flaskr/templates/base.html new file mode 100644 index 0000000..ed9a4f9 --- /dev/null +++ b/flaskr/templates/base.html @@ -0,0 +1,25 @@ + +{% block title %}{% endblock %} - Flaskr + + +
+
+ {% block header %}{% endblock %} +
+ {% for message in get_flashed_messages() %} +
{{ message }}
+ {% endfor %} + {% block content %}{% endblock %} +
\ No newline at end of file diff --git a/flaskr/templates/blog/create.html b/flaskr/templates/blog/create.html new file mode 100644 index 0000000..ad402e0 --- /dev/null +++ b/flaskr/templates/blog/create.html @@ -0,0 +1,15 @@ +{% extends 'base.html' %} + +{% block header %} +

{% block title %}New Post{% endblock %}

+{% endblock %} + +{% block content %} +
+ + + + + +
+{% endblock %} \ No newline at end of file diff --git a/flaskr/templates/blog/index.html b/flaskr/templates/blog/index.html new file mode 100644 index 0000000..77c0693 --- /dev/null +++ b/flaskr/templates/blog/index.html @@ -0,0 +1,28 @@ +{% extends 'base.html' %} + +{% block header %} +

{% block title %}Posts{% endblock %}

+ {% if g.user %} + New + {% endif %} +{% endblock %} + +{% block content %} + {% for post in posts %} +
+
+
+

{{ post['post_title'] }}

+
by {{ post['user_name'] }} on {{ post['post_created'].strftime('%Y-%m-%d') }}
+
+ {% if g.user['id'] == post['post_author_id'] %} + Edit + {% endif %} +
+

{{ post['post_body'] }}

+
+ {% if not loop.last %} +
+ {% endif %} + {% endfor %} +{% endblock %} \ No newline at end of file diff --git a/flaskr/templates/blog/update.html b/flaskr/templates/blog/update.html new file mode 100644 index 0000000..fde2acc --- /dev/null +++ b/flaskr/templates/blog/update.html @@ -0,0 +1,20 @@ +{% extends 'base.html' %} + +{% block header %} +

{% block title %}Edit "{{ post['title'] }}"{% endblock %}

+{% endblock %} + +{% block content %} +
+ + + + + +
+
+
+ +
+{% endblock %} \ No newline at end of file diff --git a/flaskr/templates/dashboard.html b/flaskr/templates/dashboard.html new file mode 100644 index 0000000..d1a4bac --- /dev/null +++ b/flaskr/templates/dashboard.html @@ -0,0 +1,13 @@ +{% extends "base.html" %} +{% block content %} + +

Dashboard

+ Landing Page + Welcome to the dashboard! +
+ New Stuff +
+ Visit Blog +
+
+{% endblock %} \ No newline at end of file diff --git a/instance/flaskr.sqlite b/instance/flaskr.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..7af9d97b2e7816cc043017c972e4e76d7c822f8e GIT binary patch literal 135168 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 LKmY_jO$7cA!CVwv literal 0 HcmV?d00001 diff --git a/static/style.css b/static/style.css deleted file mode 100644 index 2ea1303..0000000 --- a/static/style.css +++ /dev/null @@ -1,52 +0,0 @@ -body { font-family: sans-serif; background: #C29A97; } -/*body { margin-left: 10%; margin-right: 10%; font-family: sans-serif; background: #eee; } -a, h1, h2 { color: #377ba8; } */ -a, h1, h2 { color: blue; } -h1, h2 { font-family: 'Georgia', serif; margin: 0; } -h1 { border-bottom: 2px solid #eee; } -h2 { font-size: 1.2em; } - -/* -.page { margin: 2em auto; width: 35em; border: 5px solid #ccc; - padding: 0.8em; background: white; } -*/ -.page { margin: 2em auto; width: auto; border: 5px solid #ccc; - padding: 0.8em; background: #EEE8BC; } -.items { list-style: none; margin: 0; padding: 0; } -.items li { margin: 0.8em 1.2em; } -.items li h2 { margin-left: -1em; } -.add-item { font-size: 0.9em; border-bottom: 1px solid #ccc; } -.add-item dl { font-weight: bold; } -.metanav { text-align: right; font-size: 0.8em; padding: 0.3em; - margin-bottom: 1em; background: #fafafa; } -.flash { background: #cee5F5; padding: 0.5em; - border: 1px solid #aacbe2; } -.error { background: #f0d6d6; padding: 0.5em; } - - - -/* Style the list */ -ul.tab { - list-style-type: none; - margin: 0; - padding: 0; - overflow: hidden; - border: 1px solid #ccc; - background-color: #f1f1f1; -} - -/* Float the list items side by side */ -ul.tab li {float: left;} - -/* Style the links inside the list items */ -ul.tab li a { - display: inline-block; - color: black; - text-align: center; - padding: 14px 16px; - text-decoration: none; - transition: 0.3s; - font-size: 17px; -} - - diff --git a/static/style2.css b/static/style2.css new file mode 100644 index 0000000..e69de29 diff --git a/templates/base.html b/templates/base.html new file mode 100644 index 0000000..fb0e460 --- /dev/null +++ b/templates/base.html @@ -0,0 +1,24 @@ + +{% block title %}{% endblock %} - Flaskr + + +
+
+ {% block header %}{% endblock %} +
+ {% for message in get_flashed_messages() %} +
{{ message }}
+ {% endfor %} + {% block content %}{% endblock %} +
\ No newline at end of file diff --git a/templates/dashboard.html b/templates/dashboard.html index 4b4fd01..e1022c8 100644 --- a/templates/dashboard.html +++ b/templates/dashboard.html @@ -1,5 +1,6 @@ {% extends "layout.html" %} {% block body %} + {% endblock %} \ No newline at end of file diff --git a/templates/register.html b/templates/register.html new file mode 100644 index 0000000..a3c73cc --- /dev/null +++ b/templates/register.html @@ -0,0 +1,15 @@ +{% extends 'base.html' %} + +{% block header %} +

{% block title %}Register{% endblock %}

+{% endblock %} + +{% block content %} +
+ + + + + +
+{% endblock %} \ No newline at end of file -- 2.30.2