From dae9fd4ef83d622b5b284181bd95edc1e1ac8b77 Mon Sep 17 00:00:00 2001 From: Trevor Hoy Date: Sun, 3 Dec 2017 17:58:13 -0800 Subject: [PATCH 1/7] adding part1 solutions --- Unit-02/01-blueprints/readme.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Unit-02/01-blueprints/readme.md b/Unit-02/01-blueprints/readme.md index afe8a3c..4f9ca1a 100644 --- a/Unit-02/01-blueprints/readme.md +++ b/Unit-02/01-blueprints/readme.md @@ -3,10 +3,21 @@ ### Part I - Questions 1. Describe the MVC pattern. + +MVC is a pattern that is used to create web apps. There are three main parts to the pattern: model, view, controller. These three parts help manage the interactions between the user and the application + 2. In the MVC pattern, does the model communicate directly with the view? + +The model does not communicate directly with the view. Rather, the controler receives a request from the user and looks to the models to retrieve the necessary data. Once it's compiled the controller then sends off the product to view. + 2. What is the purpose of blueprints? + +It helps to organize and better structure our app building code. Currently, the code we've built all lives in one main file, and blueprints helps to separate the code into main categories + 3. How does using blueprints help us organize bigger applications? +Blueprints uses the MVC structure to break apart our app's code. In order to do so, additional folders are created to help organize each section of code. + ### Part II - Exercise 1. Refactor your users and messages app to use blueprints. Make sure to have a separate file for `models.py`, `views.py`, and `forms.py`. You should have a working 1 to Many application with blueprints when this exercise is complete! From a193bea7adc882752dad0d7c64241c76275e5f72 Mon Sep 17 00:00:00 2001 From: Trevor Hoy Date: Sun, 3 Dec 2017 18:04:47 -0800 Subject: [PATCH 2/7] copied and added users messages app --- Unit-02/01-blueprints/users-app/.DS_Store | Bin 0 -> 6148 bytes Unit-02/01-blueprints/users-app/app.py | 144 ++++++++++++++++++ Unit-02/01-blueprints/users-app/forms.py | 12 ++ Unit-02/01-blueprints/users-app/manage.py | 10 ++ .../01-blueprints/users-app/migrations/README | 1 + .../users-app/migrations/alembic.ini | 45 ++++++ .../01-blueprints/users-app/migrations/env.py | 87 +++++++++++ .../users-app/migrations/script.py.mako | 24 +++ .../d0130005f076_add_messages_table.py | 34 +++++ .../migrations/versions/d2def50e1010_.py | 33 ++++ .../users-app/templates/.DS_Store | Bin 0 -> 6148 bytes .../users-app/templates/base.html | 12 ++ .../users-app/templates/messages/edit.html | 22 +++ .../users-app/templates/messages/index.html | 17 +++ .../users-app/templates/messages/new.html | 22 +++ .../users-app/templates/messages/show.html | 0 .../users-app/templates/users/.DS_Store | Bin 0 -> 6148 bytes .../users-app/templates/users/edit.html | 23 +++ .../users-app/templates/users/index.html | 24 +++ .../users-app/templates/users/new.html | 22 +++ .../users-app/templates/users/show.html | 12 ++ 21 files changed, 544 insertions(+) create mode 100644 Unit-02/01-blueprints/users-app/.DS_Store create mode 100644 Unit-02/01-blueprints/users-app/app.py create mode 100644 Unit-02/01-blueprints/users-app/forms.py create mode 100644 Unit-02/01-blueprints/users-app/manage.py create mode 100755 Unit-02/01-blueprints/users-app/migrations/README create mode 100644 Unit-02/01-blueprints/users-app/migrations/alembic.ini create mode 100755 Unit-02/01-blueprints/users-app/migrations/env.py create mode 100755 Unit-02/01-blueprints/users-app/migrations/script.py.mako create mode 100644 Unit-02/01-blueprints/users-app/migrations/versions/d0130005f076_add_messages_table.py create mode 100644 Unit-02/01-blueprints/users-app/migrations/versions/d2def50e1010_.py create mode 100644 Unit-02/01-blueprints/users-app/templates/.DS_Store create mode 100644 Unit-02/01-blueprints/users-app/templates/base.html create mode 100644 Unit-02/01-blueprints/users-app/templates/messages/edit.html create mode 100644 Unit-02/01-blueprints/users-app/templates/messages/index.html create mode 100644 Unit-02/01-blueprints/users-app/templates/messages/new.html create mode 100644 Unit-02/01-blueprints/users-app/templates/messages/show.html create mode 100644 Unit-02/01-blueprints/users-app/templates/users/.DS_Store create mode 100644 Unit-02/01-blueprints/users-app/templates/users/edit.html create mode 100644 Unit-02/01-blueprints/users-app/templates/users/index.html create mode 100644 Unit-02/01-blueprints/users-app/templates/users/new.html create mode 100644 Unit-02/01-blueprints/users-app/templates/users/show.html diff --git a/Unit-02/01-blueprints/users-app/.DS_Store b/Unit-02/01-blueprints/users-app/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a580bdfa4f58bbd6ddd40e9566b76e176687eb88 GIT binary patch literal 6148 zcmeHKIc~#13?vg54$`P}xnIZ+7J~BveZT<{xUpp;K5A8YSDxnKfgpnHCV-n@2#~YO z<*cA7L{UVvJ-xq(G$JyG8_Ji3soA;t#2zxEKsfH$$eSGHLk{O|QhhyP+$ZO3W&fN1 z*>86JI&QvBWtIw10V+TRr~noCg96rjVe{ueMk+uBsKAc`_I)UD!kdX>d zfw2OQv2CpXzrt_K|6>w&RDcTnD+P46?3OKFDSPYW<*e5h_zG?{-*7Xmor2))80hU7 g8*9f4FN(TiYn<1_A<*f_I~~ZM0n>#>1@5iD1$', methods=['GET','PATCH', 'DELETE']) +def show(id): + found_user = User.query.get(id) + if request.method == b'PATCH': + form = UserForm(request.form) + if form.validate(): + found_user.first_name = form.first_name.data + found_user.last_name = form.last_name.data + db.session.add(found_user) + db.session.commit() + return redirect(url_for('index')) + return render_template('users/edit.html', user=found_user, form=form) + if request.method == b'DELETE': + delete_form = DeleteForm(request.form) + if delete_form.validate(): + db.session.delete(found_user) + db.session.commit() + return redirect(url_for('index')) + return render_template('users/show.html', user=found_user) + +@app.route('/users//edit') +def edit(id): + found_user = User.query.get(id) + user_form = UserForm(obj=found_user) + return render_template('users/edit.html', user=found_user, form=user_form) + + +# MESSAGES + +# SEE ALL MESSAGES +@app.route('/users//messages', methods=['GET', 'POST']) +def messages_index(user_id): + #find a user + delete_form = DeleteForm() + if request.method == 'POST': + message_form = MessageForm(request.form) + if message_form.validate(): + new_message = Message(request.form['content'], user_id) + db.session.add(new_message) + db.session.commit() + return redirect(url_for('messages_index', user_id=user_id, form=message_form)) + else: + return render_template('messages/new.html', user=User.query.get(user_id), form=message_form) + return render_template('messages/index.html', user=User.query.get(user_id), delete_form=delete_form) + +# NEW MESSAGE +@app.route('/users//messages/new', methods=['GET','POST']) +def messages_new(user_id): + message_form = MessageForm(request.form) + return render_template('messages/new.html', user=User.query.get(user_id), form=message_form) + +#EDIT MESSAGE FORM +@app.route('/users//messages//edit') +def messages_edit(user_id, id): + found_message = Message.query.get(id) + message_form = MessageForm(obj=found_message) + return render_template('messages/edit.html', message=found_message, form=message_form) + +# EDIT MESSAGE +@app.route('/users//messages/', methods=['GET','PATCH','DELETE']) +def messages_show(user_id, id): + found_message = Message.query.get(id) + if request.method == b'PATCH': + message_form = MessageForm(request.form) + if message_form.validate(): + found_message.content = request.form['content'] + db.session.add(found_message) + db.session.commit() + return redirect(url_for('messages_index', user_id=user_id)) + return render_template('messages/edit.html', message=found_message, form=message_form) + if request.method == b'DELETE': + delete_form = DeleteForm(request.form) + if delete_form.validate(): + db.session.delete(found_message) + db.session.commit() + return redirect(url_for('messages_index', user_id=user_id)) + return render_template('messages/show.html', message=found_message) + + +if __name__ == '__main__': + app.run(debug=True,port=3000) \ No newline at end of file diff --git a/Unit-02/01-blueprints/users-app/forms.py b/Unit-02/01-blueprints/users-app/forms.py new file mode 100644 index 0000000..db17408 --- /dev/null +++ b/Unit-02/01-blueprints/users-app/forms.py @@ -0,0 +1,12 @@ +from flask_wtf import FlaskForm +from wtforms import StringField, validators + +class UserForm(FlaskForm): + first_name = StringField('First Name', [validators.DataRequired()]) + last_name = StringField('Last Name', [validators.DataRequired()]) + +class MessageForm(FlaskForm): + content = StringField('Content', [validators.DataRequired()]) + +class DeleteForm(FlaskForm): + pass \ No newline at end of file diff --git a/Unit-02/01-blueprints/users-app/manage.py b/Unit-02/01-blueprints/users-app/manage.py new file mode 100644 index 0000000..664490f --- /dev/null +++ b/Unit-02/01-blueprints/users-app/manage.py @@ -0,0 +1,10 @@ +from app import app,db +from flask_script import Manager +from flask_migrate import Migrate, MigrateCommand + +migrate = Migrate(app, db) +manager = Manager(app) +manager.add_command('db', MigrateCommand) + +if __name__ == '__main__': + manager.run() \ No newline at end of file diff --git a/Unit-02/01-blueprints/users-app/migrations/README b/Unit-02/01-blueprints/users-app/migrations/README new file mode 100755 index 0000000..98e4f9c --- /dev/null +++ b/Unit-02/01-blueprints/users-app/migrations/README @@ -0,0 +1 @@ +Generic single-database configuration. \ No newline at end of file diff --git a/Unit-02/01-blueprints/users-app/migrations/alembic.ini b/Unit-02/01-blueprints/users-app/migrations/alembic.ini new file mode 100644 index 0000000..f8ed480 --- /dev/null +++ b/Unit-02/01-blueprints/users-app/migrations/alembic.ini @@ -0,0 +1,45 @@ +# A generic, single database configuration. + +[alembic] +# template used to generate migration files +# file_template = %%(rev)s_%%(slug)s + +# set to 'true' to run the environment during +# the 'revision' command, regardless of autogenerate +# revision_environment = false + + +# Logging configuration +[loggers] +keys = root,sqlalchemy,alembic + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/Unit-02/01-blueprints/users-app/migrations/env.py b/Unit-02/01-blueprints/users-app/migrations/env.py new file mode 100755 index 0000000..23663ff --- /dev/null +++ b/Unit-02/01-blueprints/users-app/migrations/env.py @@ -0,0 +1,87 @@ +from __future__ import with_statement +from alembic import context +from sqlalchemy import engine_from_config, pool +from logging.config import fileConfig +import logging + +# this is the Alembic Config object, which provides +# access to the values within the .ini file in use. +config = context.config + +# Interpret the config file for Python logging. +# This line sets up loggers basically. +fileConfig(config.config_file_name) +logger = logging.getLogger('alembic.env') + +# add your model's MetaData object here +# for 'autogenerate' support +# from myapp import mymodel +# target_metadata = mymodel.Base.metadata +from flask import current_app +config.set_main_option('sqlalchemy.url', + current_app.config.get('SQLALCHEMY_DATABASE_URI')) +target_metadata = current_app.extensions['migrate'].db.metadata + +# other values from the config, defined by the needs of env.py, +# can be acquired: +# my_important_option = config.get_main_option("my_important_option") +# ... etc. + + +def run_migrations_offline(): + """Run migrations in 'offline' mode. + + This configures the context with just a URL + and not an Engine, though an Engine is acceptable + here as well. By skipping the Engine creation + we don't even need a DBAPI to be available. + + Calls to context.execute() here emit the given string to the + script output. + + """ + url = config.get_main_option("sqlalchemy.url") + context.configure(url=url) + + with context.begin_transaction(): + context.run_migrations() + + +def run_migrations_online(): + """Run migrations in 'online' mode. + + In this scenario we need to create an Engine + and associate a connection with the context. + + """ + + # this callback is used to prevent an auto-migration from being generated + # when there are no changes to the schema + # reference: http://alembic.zzzcomputing.com/en/latest/cookbook.html + def process_revision_directives(context, revision, directives): + if getattr(config.cmd_opts, 'autogenerate', False): + script = directives[0] + if script.upgrade_ops.is_empty(): + directives[:] = [] + logger.info('No changes in schema detected.') + + engine = engine_from_config(config.get_section(config.config_ini_section), + prefix='sqlalchemy.', + poolclass=pool.NullPool) + + connection = engine.connect() + context.configure(connection=connection, + target_metadata=target_metadata, + process_revision_directives=process_revision_directives, + **current_app.extensions['migrate'].configure_args) + + try: + with context.begin_transaction(): + context.run_migrations() + finally: + connection.close() + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() diff --git a/Unit-02/01-blueprints/users-app/migrations/script.py.mako b/Unit-02/01-blueprints/users-app/migrations/script.py.mako new file mode 100755 index 0000000..2c01563 --- /dev/null +++ b/Unit-02/01-blueprints/users-app/migrations/script.py.mako @@ -0,0 +1,24 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +# revision identifiers, used by Alembic. +revision = ${repr(up_revision)} +down_revision = ${repr(down_revision)} +branch_labels = ${repr(branch_labels)} +depends_on = ${repr(depends_on)} + + +def upgrade(): + ${upgrades if upgrades else "pass"} + + +def downgrade(): + ${downgrades if downgrades else "pass"} diff --git a/Unit-02/01-blueprints/users-app/migrations/versions/d0130005f076_add_messages_table.py b/Unit-02/01-blueprints/users-app/migrations/versions/d0130005f076_add_messages_table.py new file mode 100644 index 0000000..f90b286 --- /dev/null +++ b/Unit-02/01-blueprints/users-app/migrations/versions/d0130005f076_add_messages_table.py @@ -0,0 +1,34 @@ +"""add messages table + +Revision ID: d0130005f076 +Revises: d2def50e1010 +Create Date: 2017-11-30 16:10:09.924022 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'd0130005f076' +down_revision = 'd2def50e1010' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('messages', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('content', sa.Text(), nullable=True), + sa.Column('user_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('messages') + # ### end Alembic commands ### diff --git a/Unit-02/01-blueprints/users-app/migrations/versions/d2def50e1010_.py b/Unit-02/01-blueprints/users-app/migrations/versions/d2def50e1010_.py new file mode 100644 index 0000000..47f7d2e --- /dev/null +++ b/Unit-02/01-blueprints/users-app/migrations/versions/d2def50e1010_.py @@ -0,0 +1,33 @@ +"""empty message + +Revision ID: d2def50e1010 +Revises: +Create Date: 2017-11-30 14:04:29.263677 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'd2def50e1010' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('users', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('first_name', sa.Text(), nullable=True), + sa.Column('last_name', sa.Text(), nullable=True), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('users') + # ### end Alembic commands ### diff --git a/Unit-02/01-blueprints/users-app/templates/.DS_Store b/Unit-02/01-blueprints/users-app/templates/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..8555c0f0f4faa9ea3143d76f0c39a3637ac3957c GIT binary patch literal 6148 zcmeHKI|>3Z5S{S@f{mqRuHX%V=n1@lg<>NLiq>0sE|2D$PqQrBt%dRiCNG)HOUNsB zc0@$ikHbo2AtE!lp}cJ9n(do+Y?KiN!g0p^xw~D?*UPDs+ZQnIR337dqug42+o4eb zDnJFO02QDDLo1LKb~YdSV4g<>sKC!FVBd!VH>`i_@% literal 0 HcmV?d00001 diff --git a/Unit-02/01-blueprints/users-app/templates/base.html b/Unit-02/01-blueprints/users-app/templates/base.html new file mode 100644 index 0000000..0ac8ee0 --- /dev/null +++ b/Unit-02/01-blueprints/users-app/templates/base.html @@ -0,0 +1,12 @@ + + + + + Users App!! + + + Home + {% block content %} + {% endblock %} + + \ No newline at end of file diff --git a/Unit-02/01-blueprints/users-app/templates/messages/edit.html b/Unit-02/01-blueprints/users-app/templates/messages/edit.html new file mode 100644 index 0000000..8b2b830 --- /dev/null +++ b/Unit-02/01-blueprints/users-app/templates/messages/edit.html @@ -0,0 +1,22 @@ +{% extends 'base.html' %} + +{% block content %} +

Edit message

+
+ {{ form.hidden_tag() }} + {% for field in form if field.widget.input_type != 'hidden' %} +

+ {{field.label }} + {{ field }} + + {% if field.errors %} + {% for error in field.errors %} + {{error}} + {% endfor %} + {% endif %} + +

+ {% endfor %} + +
+{% endblock %} \ No newline at end of file diff --git a/Unit-02/01-blueprints/users-app/templates/messages/index.html b/Unit-02/01-blueprints/users-app/templates/messages/index.html new file mode 100644 index 0000000..fec9dc7 --- /dev/null +++ b/Unit-02/01-blueprints/users-app/templates/messages/index.html @@ -0,0 +1,17 @@ +{% extends 'base.html' %} + +{% block content %} + Add a new message, {{ user.first_name }}! +

See all the messages for {{user.first_name}}

+ {% for message in user.messages %} +

+ {{ message.content }} +
+ Edit message +

+ {{ delete_form.hidden_tag() }} + +
+

+{% endfor %} +{% endblock %} \ No newline at end of file diff --git a/Unit-02/01-blueprints/users-app/templates/messages/new.html b/Unit-02/01-blueprints/users-app/templates/messages/new.html new file mode 100644 index 0000000..e9f05d6 --- /dev/null +++ b/Unit-02/01-blueprints/users-app/templates/messages/new.html @@ -0,0 +1,22 @@ +{% extends 'base.html' %} + +{% block content %} +

Add a new message

+
+ {{ form.hidden_tag() }} + {% for field in form if field.widget.input_type != 'hidden' %} +

+ {{ field.label }} + {{ field }} + + {% if field.errors %} + {% for error in field.errors %} + {{error}} + {% endfor %} + {% endif %} + +

+ {% endfor %} + +
+{% endblock %} \ No newline at end of file diff --git a/Unit-02/01-blueprints/users-app/templates/messages/show.html b/Unit-02/01-blueprints/users-app/templates/messages/show.html new file mode 100644 index 0000000..e69de29 diff --git a/Unit-02/01-blueprints/users-app/templates/users/.DS_Store b/Unit-02/01-blueprints/users-app/templates/users/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0Edit: {{ user.first_name }} {{ user.last_name }} + +
+ {{ form.hidden_tag() }} + {% for field in form if field.widget.input_type != 'hidden' %} +

+ {{field.label }} + {{ field }} + + {% if field.errors %} + {% for error in field.errors %} + {{error}} + {% endfor %} + {% endif %} + +

+ {% endfor %} + +
+{% endblock %} \ No newline at end of file diff --git a/Unit-02/01-blueprints/users-app/templates/users/index.html b/Unit-02/01-blueprints/users-app/templates/users/index.html new file mode 100644 index 0000000..ac73dc7 --- /dev/null +++ b/Unit-02/01-blueprints/users-app/templates/users/index.html @@ -0,0 +1,24 @@ +{% extends 'base.html' %} + +{% block content %} +Make a new user! +

See all users!

+ +{% for user in users %} + +

+ {{ user.first_name }} {{ user.last_name }} +
+ See all messages for {{user.first_name}} +
+ Edit a user! +
+

+ {{delete_form.hidden_tag()}} + +
+ +

+{% endfor %} + +{% endblock %} \ No newline at end of file diff --git a/Unit-02/01-blueprints/users-app/templates/users/new.html b/Unit-02/01-blueprints/users-app/templates/users/new.html new file mode 100644 index 0000000..a27eb1c --- /dev/null +++ b/Unit-02/01-blueprints/users-app/templates/users/new.html @@ -0,0 +1,22 @@ +{% extends 'base.html' %} + +{% block content %} +

Add a new user!

+
+ {{ form.hidden_tag() }} + {% for field in form if field.widget.input_type != 'hidden' %} +

+ {{field.label }} + {{ field }} + + {% if field.errors %} + {% for error in field.errors %} + {{error}} + {% endfor %} + {% endif %} + +

+ {% endfor %} + +
+{% endblock %} \ No newline at end of file diff --git a/Unit-02/01-blueprints/users-app/templates/users/show.html b/Unit-02/01-blueprints/users-app/templates/users/show.html new file mode 100644 index 0000000..68da160 --- /dev/null +++ b/Unit-02/01-blueprints/users-app/templates/users/show.html @@ -0,0 +1,12 @@ +{% extends 'base.html' %} + +{% block content %} +

Here is your user: {{user.first_name}} {{user.last_name}}

+ +Edit this user! + +

Delete user

+
+ +
+{% endblock %} \ No newline at end of file From 07866075afec12dcfa5a9aab0bf4af3f80802cfc Mon Sep 17 00:00:00 2001 From: Trevor Hoy Date: Sun, 3 Dec 2017 19:32:39 -0800 Subject: [PATCH 3/7] updated folder structure --- .../{users-app/templates => }/.DS_Store | Bin 6148 -> 6148 bytes Unit-02/01-blueprints/{users-app => }/app.py | 0 .../01-blueprints/{users-app => }/manage.py | 0 .../{users-app => }/migrations/README | 0 .../{users-app => }/migrations/alembic.ini | 0 .../{users-app => }/migrations/env.py | 0 .../{users-app => }/migrations/script.py.mako | 0 .../d0130005f076_add_messages_table.py | 0 .../migrations/versions/d2def50e1010_.py | 0 Unit-02/01-blueprints/project/.DS_Store | Bin 0 -> 6148 bytes .../show.html => project/__init__.py} | 0 .../01-blueprints/project/messages/.DS_Store | Bin 0 -> 6148 bytes .../{users-app => project/messages}/forms.py | 0 .../01-blueprints/project/messages/models.py | 0 .../project/messages/templates/.DS_Store | Bin 0 -> 6148 bytes .../messages}/templates/messages/edit.html | 0 .../messages}/templates/messages/index.html | 0 .../messages}/templates/messages/new.html | 0 .../messages/templates/messages/show.html | 0 .../01-blueprints/project/messages/views.py | 0 .../users => project/templates}/.DS_Store | Bin .../templates/base.html | 0 Unit-02/01-blueprints/project/users/.DS_Store | Bin 0 -> 6148 bytes Unit-02/01-blueprints/project/users/forms.py | 12 ++++++++++++ Unit-02/01-blueprints/project/users/models.py | 0 .../users/templates}/.DS_Store | Bin 6148 -> 6148 bytes .../users}/templates/users/edit.html | 0 .../users}/templates/users/index.html | 0 .../users}/templates/users/new.html | 0 .../users}/templates/users/show.html | 0 Unit-02/01-blueprints/project/users/views.py | 0 31 files changed, 12 insertions(+) rename Unit-02/01-blueprints/{users-app/templates => }/.DS_Store (89%) rename Unit-02/01-blueprints/{users-app => }/app.py (100%) rename Unit-02/01-blueprints/{users-app => }/manage.py (100%) rename Unit-02/01-blueprints/{users-app => }/migrations/README (100%) rename Unit-02/01-blueprints/{users-app => }/migrations/alembic.ini (100%) rename Unit-02/01-blueprints/{users-app => }/migrations/env.py (100%) rename Unit-02/01-blueprints/{users-app => }/migrations/script.py.mako (100%) rename Unit-02/01-blueprints/{users-app => }/migrations/versions/d0130005f076_add_messages_table.py (100%) rename Unit-02/01-blueprints/{users-app => }/migrations/versions/d2def50e1010_.py (100%) create mode 100644 Unit-02/01-blueprints/project/.DS_Store rename Unit-02/01-blueprints/{users-app/templates/messages/show.html => project/__init__.py} (100%) create mode 100644 Unit-02/01-blueprints/project/messages/.DS_Store rename Unit-02/01-blueprints/{users-app => project/messages}/forms.py (100%) create mode 100644 Unit-02/01-blueprints/project/messages/models.py create mode 100644 Unit-02/01-blueprints/project/messages/templates/.DS_Store rename Unit-02/01-blueprints/{users-app => project/messages}/templates/messages/edit.html (100%) rename Unit-02/01-blueprints/{users-app => project/messages}/templates/messages/index.html (100%) rename Unit-02/01-blueprints/{users-app => project/messages}/templates/messages/new.html (100%) create mode 100644 Unit-02/01-blueprints/project/messages/templates/messages/show.html create mode 100644 Unit-02/01-blueprints/project/messages/views.py rename Unit-02/01-blueprints/{users-app/templates/users => project/templates}/.DS_Store (100%) rename Unit-02/01-blueprints/{users-app => project}/templates/base.html (100%) create mode 100644 Unit-02/01-blueprints/project/users/.DS_Store create mode 100644 Unit-02/01-blueprints/project/users/forms.py create mode 100644 Unit-02/01-blueprints/project/users/models.py rename Unit-02/01-blueprints/{users-app => project/users/templates}/.DS_Store (90%) rename Unit-02/01-blueprints/{users-app => project/users}/templates/users/edit.html (100%) rename Unit-02/01-blueprints/{users-app => project/users}/templates/users/index.html (100%) rename Unit-02/01-blueprints/{users-app => project/users}/templates/users/new.html (100%) rename Unit-02/01-blueprints/{users-app => project/users}/templates/users/show.html (100%) create mode 100644 Unit-02/01-blueprints/project/users/views.py diff --git a/Unit-02/01-blueprints/users-app/templates/.DS_Store b/Unit-02/01-blueprints/.DS_Store similarity index 89% rename from Unit-02/01-blueprints/users-app/templates/.DS_Store rename to Unit-02/01-blueprints/.DS_Store index 8555c0f0f4faa9ea3143d76f0c39a3637ac3957c..3a265d158d4b5e7a6e893b91ac7d836c2243bf78 100644 GIT binary patch delta 212 zcmZoMXfc=|#>B`mu~2NHo}wrV0|Nsi1A_nqLn=cuLrG4$VQ_N(#Er}AK@#i?1q?+D z`3zaelDP#y85lrQk(=-0l2Tfd%)oHXD|>-t9#9#EiWCAW3Nk=WV9G7nxUrgTGdl-A h2hg<}H-2ZH%rBzL1F{(CUWNuB-s~f?gLz^D3jpKfF**PM delta 111 zcmZoMXfc=|#>CJzu~2NHo}w@#0|NsP3otMgmjxH)<>cq3Pb}1w1_`q=lrj`Eq%ssC wq(F){Ph>1(o4kPW^=5Vseh#2XK!NYfllet-IYGJ(05QX48y@M+F(ONt0q%htMF0Q* diff --git a/Unit-02/01-blueprints/users-app/app.py b/Unit-02/01-blueprints/app.py similarity index 100% rename from Unit-02/01-blueprints/users-app/app.py rename to Unit-02/01-blueprints/app.py diff --git a/Unit-02/01-blueprints/users-app/manage.py b/Unit-02/01-blueprints/manage.py similarity index 100% rename from Unit-02/01-blueprints/users-app/manage.py rename to Unit-02/01-blueprints/manage.py diff --git a/Unit-02/01-blueprints/users-app/migrations/README b/Unit-02/01-blueprints/migrations/README similarity index 100% rename from Unit-02/01-blueprints/users-app/migrations/README rename to Unit-02/01-blueprints/migrations/README diff --git a/Unit-02/01-blueprints/users-app/migrations/alembic.ini b/Unit-02/01-blueprints/migrations/alembic.ini similarity index 100% rename from Unit-02/01-blueprints/users-app/migrations/alembic.ini rename to Unit-02/01-blueprints/migrations/alembic.ini diff --git a/Unit-02/01-blueprints/users-app/migrations/env.py b/Unit-02/01-blueprints/migrations/env.py similarity index 100% rename from Unit-02/01-blueprints/users-app/migrations/env.py rename to Unit-02/01-blueprints/migrations/env.py diff --git a/Unit-02/01-blueprints/users-app/migrations/script.py.mako b/Unit-02/01-blueprints/migrations/script.py.mako similarity index 100% rename from Unit-02/01-blueprints/users-app/migrations/script.py.mako rename to Unit-02/01-blueprints/migrations/script.py.mako diff --git a/Unit-02/01-blueprints/users-app/migrations/versions/d0130005f076_add_messages_table.py b/Unit-02/01-blueprints/migrations/versions/d0130005f076_add_messages_table.py similarity index 100% rename from Unit-02/01-blueprints/users-app/migrations/versions/d0130005f076_add_messages_table.py rename to Unit-02/01-blueprints/migrations/versions/d0130005f076_add_messages_table.py diff --git a/Unit-02/01-blueprints/users-app/migrations/versions/d2def50e1010_.py b/Unit-02/01-blueprints/migrations/versions/d2def50e1010_.py similarity index 100% rename from Unit-02/01-blueprints/users-app/migrations/versions/d2def50e1010_.py rename to Unit-02/01-blueprints/migrations/versions/d2def50e1010_.py diff --git a/Unit-02/01-blueprints/project/.DS_Store b/Unit-02/01-blueprints/project/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..0544500974f90a67cab8b2632aa62c330bdabbaa GIT binary patch literal 6148 zcmeHKu};J=47K4vMJzWm<`?=0)u}A3{Q=PRREG9i?yk(482AFdjPKz&4ydJ(*bqW? zl|09>6Zc6?Y9ivzSm#7*BFfMNS(Jo`IXQI}oiBkL)_9vVnnqtEb|SKs!!q7(AzXrLAuiGF;p4*Ry> zH`oPC(*=#lc1MTB%p_$~jR9l87%&Emfg}TRlR&a-MeB_LW55{rVnEIZhbCA=^orr= zKo?2?;0op-(504;7#FdK=oK*oVGRXpD8~|mH5_&q{fdZQQNxL2@xgKD&*Fu{?pWUi zcj7|PdSk#Cm@{y$!?oQ1xACjbLEM{dHT&O6cJS48xRvWnP4IM99s0wLBJ1HZt)2V>_tVE_OC literal 0 HcmV?d00001 diff --git a/Unit-02/01-blueprints/users-app/templates/messages/show.html b/Unit-02/01-blueprints/project/__init__.py similarity index 100% rename from Unit-02/01-blueprints/users-app/templates/messages/show.html rename to Unit-02/01-blueprints/project/__init__.py diff --git a/Unit-02/01-blueprints/project/messages/.DS_Store b/Unit-02/01-blueprints/project/messages/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..fee72b060da56a518408666d0196cbf58184cff3 GIT binary patch literal 6148 zcmeHKJ5B>J5S@V(K{P2-`U+{NO|&#=a{*8mL6OxiBI$h-ZpC@><`cB5xS&7?p&7}3 zW6#IlC#~%vB3>Wc714r-=4gT}N=0P4YPxdg8IU!{o}TDH&-A{3sU-S~Q?mCP-E&6+ zjrPCV?)q*RZMovr^-a?r4?CjI&D+QQT|HOVx8Lv@UN2T0Egotx5DWwZ!9XzZV+`QV z7Mb4~Mjs3W1Hr%-19CnjG{Njx4E5+hrzHSTp3y4MrIwJGvPpZoT+CxoZ>JBbtc#6;UA2CyxLO$ I27ZBo6UDkNO8@`> literal 0 HcmV?d00001 diff --git a/Unit-02/01-blueprints/users-app/forms.py b/Unit-02/01-blueprints/project/messages/forms.py similarity index 100% rename from Unit-02/01-blueprints/users-app/forms.py rename to Unit-02/01-blueprints/project/messages/forms.py diff --git a/Unit-02/01-blueprints/project/messages/models.py b/Unit-02/01-blueprints/project/messages/models.py new file mode 100644 index 0000000..e69de29 diff --git a/Unit-02/01-blueprints/project/messages/templates/.DS_Store b/Unit-02/01-blueprints/project/messages/templates/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c6e99679295d778d482fcf63ce066154b90d7cc0 GIT binary patch literal 6148 zcmeHKu};J=47K5gN-Q@r<`?=0)u}AE_6I;$bPQBI1h?lu7#R2`zK8c>gIcZ<3qlCl zRq~v~c9JJGiA6*=$G#R>i%5k+R4NO??!}=qH(mj?#JG{Y+{)wqzU~$R{lzY>y^?{e z#y462ZX6Di1)taqW83z}r=7^#_TlyUWhu@u_TSnZ?&|K#T$5=-4F-aNU?3O>27a6Y z+}V`s!Z7M!AQ%V+J{jQokWh$?V>T>D2da_+0QrnA0-d=8eUfA2m<=%kQF8^Ft9pu| z=8pd4c8y~;G9K zf5w2W+OFMTQ+~IeY>#(sLb*nv&@NMfK%YGV(BL_8Sq5!9QHNdQm<<_){ly&^4}n5R KRKdV6Fz^ocL@opX literal 0 HcmV?d00001 diff --git a/Unit-02/01-blueprints/users-app/templates/messages/edit.html b/Unit-02/01-blueprints/project/messages/templates/messages/edit.html similarity index 100% rename from Unit-02/01-blueprints/users-app/templates/messages/edit.html rename to Unit-02/01-blueprints/project/messages/templates/messages/edit.html diff --git a/Unit-02/01-blueprints/users-app/templates/messages/index.html b/Unit-02/01-blueprints/project/messages/templates/messages/index.html similarity index 100% rename from Unit-02/01-blueprints/users-app/templates/messages/index.html rename to Unit-02/01-blueprints/project/messages/templates/messages/index.html diff --git a/Unit-02/01-blueprints/users-app/templates/messages/new.html b/Unit-02/01-blueprints/project/messages/templates/messages/new.html similarity index 100% rename from Unit-02/01-blueprints/users-app/templates/messages/new.html rename to Unit-02/01-blueprints/project/messages/templates/messages/new.html diff --git a/Unit-02/01-blueprints/project/messages/templates/messages/show.html b/Unit-02/01-blueprints/project/messages/templates/messages/show.html new file mode 100644 index 0000000..e69de29 diff --git a/Unit-02/01-blueprints/project/messages/views.py b/Unit-02/01-blueprints/project/messages/views.py new file mode 100644 index 0000000..e69de29 diff --git a/Unit-02/01-blueprints/users-app/templates/users/.DS_Store b/Unit-02/01-blueprints/project/templates/.DS_Store similarity index 100% rename from Unit-02/01-blueprints/users-app/templates/users/.DS_Store rename to Unit-02/01-blueprints/project/templates/.DS_Store diff --git a/Unit-02/01-blueprints/users-app/templates/base.html b/Unit-02/01-blueprints/project/templates/base.html similarity index 100% rename from Unit-02/01-blueprints/users-app/templates/base.html rename to Unit-02/01-blueprints/project/templates/base.html diff --git a/Unit-02/01-blueprints/project/users/.DS_Store b/Unit-02/01-blueprints/project/users/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2240d5d0fb16182d18f363d6d5d4a7e573903816 GIT binary patch literal 6148 zcmeHKJ8AaH|{(KvgSC_o=)^gFUO}!qQ5vLd%x8^ zcQnvw|LfhM?}pKqD_&jSH0}9xAbP*=U*A6Jxw^jnhS%_Xwc=>;P=kSBAQ%V+f`K1n z0C%>?;?6MoU?3O>2EG`O^C6)LX2)WvM+Z7B0f6$1R)H?Hgv2Dr>{tw8fv|-FEtI{) zU<=25a=+|Y3@x14ix2jdFU1S%>d2qeoj4mt9}ENoQwC->T+02w#V=DW@~0s&3I>9K zf5rgMn_aWPNBP})^?7pFCbS1M5%DXcK%h?^0T{?RvQnejlj!ivj>S;2$h?LF;~}7g KL>CPF0t24`+A$XZ literal 0 HcmV?d00001 diff --git a/Unit-02/01-blueprints/project/users/forms.py b/Unit-02/01-blueprints/project/users/forms.py new file mode 100644 index 0000000..db17408 --- /dev/null +++ b/Unit-02/01-blueprints/project/users/forms.py @@ -0,0 +1,12 @@ +from flask_wtf import FlaskForm +from wtforms import StringField, validators + +class UserForm(FlaskForm): + first_name = StringField('First Name', [validators.DataRequired()]) + last_name = StringField('Last Name', [validators.DataRequired()]) + +class MessageForm(FlaskForm): + content = StringField('Content', [validators.DataRequired()]) + +class DeleteForm(FlaskForm): + pass \ No newline at end of file diff --git a/Unit-02/01-blueprints/project/users/models.py b/Unit-02/01-blueprints/project/users/models.py new file mode 100644 index 0000000..e69de29 diff --git a/Unit-02/01-blueprints/users-app/.DS_Store b/Unit-02/01-blueprints/project/users/templates/.DS_Store similarity index 90% rename from Unit-02/01-blueprints/users-app/.DS_Store rename to Unit-02/01-blueprints/project/users/templates/.DS_Store index a580bdfa4f58bbd6ddd40e9566b76e176687eb88..af833e7bc54316153ed697bd4ae4f1a271cc4a9c 100644 GIT binary patch delta 194 zcmZoMXfc=|&e%S&P;8=}qA&{s0|O%ig8&0VaZb8naB_Zb!NiT4^&nwZhEj%NhE#?k zgcMK|29RWP^Icq0N=uR%7_NEcpMN9;RDvR#f=9L>17a!6SO~pw|6jJv>>L6djO`mY VerKM{FQUuHu-Q@MF!RI)767dFFaQ7m delta 112 zcmZoMXfc=|&e%4wP;8=}q9`K+0|O8XFfimWBr=pRq%stj1y5#VR96PcaDqj0848eP ui}G^v^U^{3HZwA^u}>CY4BpJnA;7`d2IPNdp3EwbV6&~rVP*gxbQk6T diff --git a/Unit-02/01-blueprints/users-app/templates/users/edit.html b/Unit-02/01-blueprints/project/users/templates/users/edit.html similarity index 100% rename from Unit-02/01-blueprints/users-app/templates/users/edit.html rename to Unit-02/01-blueprints/project/users/templates/users/edit.html diff --git a/Unit-02/01-blueprints/users-app/templates/users/index.html b/Unit-02/01-blueprints/project/users/templates/users/index.html similarity index 100% rename from Unit-02/01-blueprints/users-app/templates/users/index.html rename to Unit-02/01-blueprints/project/users/templates/users/index.html diff --git a/Unit-02/01-blueprints/users-app/templates/users/new.html b/Unit-02/01-blueprints/project/users/templates/users/new.html similarity index 100% rename from Unit-02/01-blueprints/users-app/templates/users/new.html rename to Unit-02/01-blueprints/project/users/templates/users/new.html diff --git a/Unit-02/01-blueprints/users-app/templates/users/show.html b/Unit-02/01-blueprints/project/users/templates/users/show.html similarity index 100% rename from Unit-02/01-blueprints/users-app/templates/users/show.html rename to Unit-02/01-blueprints/project/users/templates/users/show.html diff --git a/Unit-02/01-blueprints/project/users/views.py b/Unit-02/01-blueprints/project/users/views.py new file mode 100644 index 0000000..e69de29 From 2043348fced385a4c85aa4411c406096d8c314a2 Mon Sep 17 00:00:00 2001 From: Trevor Hoy Date: Sun, 3 Dec 2017 21:28:39 -0800 Subject: [PATCH 4/7] updating file structure --- Unit-02/01-blueprints/.DS_Store | Bin 6148 -> 6148 bytes Unit-02/01-blueprints/app.py | 142 +----------------- Unit-02/01-blueprints/project/.DS_Store | Bin 6148 -> 8196 bytes Unit-02/01-blueprints/project/__init__.py | 24 +++ .../01-blueprints/project/messages/.DS_Store | Bin 6148 -> 8196 bytes .../01-blueprints/project/messages/forms.py | 4 - .../01-blueprints/project/messages/models.py | 0 .../project/messages/templates/.DS_Store | Bin 6148 -> 6148 bytes .../messages/templates/messages/edit.html | 4 +- .../messages/templates/messages/index.html | 6 +- .../messages/templates/messages/new.html | 2 +- .../messages/templates/messages/show.html | 12 ++ .../01-blueprints/project/messages/views.py | 60 ++++++++ Unit-02/01-blueprints/project/models.py | 32 ++++ .../01-blueprints/project/templates/base.html | 10 +- Unit-02/01-blueprints/project/users/.DS_Store | Bin 6148 -> 6148 bytes Unit-02/01-blueprints/project/users/forms.py | 3 - Unit-02/01-blueprints/project/users/models.py | 0 .../project/users/templates/.DS_Store | Bin 6148 -> 6148 bytes .../project/users/templates/users/edit.html | 2 +- .../project/users/templates/users/index.html | 8 +- .../project/users/templates/users/new.html | 2 +- .../project/users/templates/users/show.html | 4 +- Unit-02/01-blueprints/project/users/views.py | 58 +++++++ 24 files changed, 210 insertions(+), 163 deletions(-) delete mode 100644 Unit-02/01-blueprints/project/messages/models.py create mode 100644 Unit-02/01-blueprints/project/models.py delete mode 100644 Unit-02/01-blueprints/project/users/models.py diff --git a/Unit-02/01-blueprints/.DS_Store b/Unit-02/01-blueprints/.DS_Store index 3a265d158d4b5e7a6e893b91ac7d836c2243bf78..a5f568e98e780f8e4e1088bb458d53c7c9264dcc 100644 GIT binary patch delta 71 zcmZoMXfc@JFUrcmz`)4BAi%(o%8<-Zl2V+UlaxPsBI9xykPJIR0Yec(K0_9=Y<>>o PW*)`|Y@69R{_+C=K3oyl delta 47 zcmZoMXfc@JFUrEez`)4BAi%(o%8<-Zl9O&2oSZ*-Bja*Lmd)yn57;I)NN;B6_{$Ff D15^xy diff --git a/Unit-02/01-blueprints/app.py b/Unit-02/01-blueprints/app.py index 9910f24..1fb8c5f 100644 --- a/Unit-02/01-blueprints/app.py +++ b/Unit-02/01-blueprints/app.py @@ -1,144 +1,4 @@ -from flask import Flask, request, render_template, url_for, redirect -from flask_sqlalchemy import SQLAlchemy -from flask_modus import Modus -from forms import UserForm, MessageForm, DeleteForm -import os - - -app = Flask(__name__) -app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://localhost/users-app-db' -app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False -app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY') -db = SQLAlchemy(app) -modus = Modus(app) - - -class User(db.Model): - - __tablename__ = 'users' - - id = db.Column(db.Integer, primary_key=True) - first_name = db.Column(db.Text) - last_name = db.Column(db.Text) - messages = db.relationship('Message', backref='user', lazy='dynamic', cascade='all,delete') - - def __init__(self, first_name, last_name): - self.first_name = first_name - self.last_name = last_name - -class Message(db.Model): - - __tablename__ = 'messages' -# DDL - id = db.Column(db.Integer, primary_key=True) - content = db.Column(db.Text) - user_id = db.Column(db.Integer, db.ForeignKey('users.id')) -# DML - def __init__(self, content, user_id): - self.content = content - self.user_id = user_id - -@app.route('/') -def root(): - return redirect(url_for('index')) - -@app.route('/users', methods=['GET', 'POST']) -def index(): - delete_form = DeleteForm() - if request.method == 'POST': - form = UserForm(request.form) - if form.validate(): - new_user = User(request.form['first_name'], request.form['last_name']) - db.session.add(new_user) - db.session.commit() - return redirect(url_for('index')) - else: - return render_template('users/new.html', form=form) - return render_template('users/index.html', users=User.query.all(), delete_form=delete_form) - -@app.route('/users/new') -def new(): - user_form = UserForm() - return render_template('users/new.html', form=user_form) - -@app.route('/users/', methods=['GET','PATCH', 'DELETE']) -def show(id): - found_user = User.query.get(id) - if request.method == b'PATCH': - form = UserForm(request.form) - if form.validate(): - found_user.first_name = form.first_name.data - found_user.last_name = form.last_name.data - db.session.add(found_user) - db.session.commit() - return redirect(url_for('index')) - return render_template('users/edit.html', user=found_user, form=form) - if request.method == b'DELETE': - delete_form = DeleteForm(request.form) - if delete_form.validate(): - db.session.delete(found_user) - db.session.commit() - return redirect(url_for('index')) - return render_template('users/show.html', user=found_user) - -@app.route('/users//edit') -def edit(id): - found_user = User.query.get(id) - user_form = UserForm(obj=found_user) - return render_template('users/edit.html', user=found_user, form=user_form) - - -# MESSAGES - -# SEE ALL MESSAGES -@app.route('/users//messages', methods=['GET', 'POST']) -def messages_index(user_id): - #find a user - delete_form = DeleteForm() - if request.method == 'POST': - message_form = MessageForm(request.form) - if message_form.validate(): - new_message = Message(request.form['content'], user_id) - db.session.add(new_message) - db.session.commit() - return redirect(url_for('messages_index', user_id=user_id, form=message_form)) - else: - return render_template('messages/new.html', user=User.query.get(user_id), form=message_form) - return render_template('messages/index.html', user=User.query.get(user_id), delete_form=delete_form) - -# NEW MESSAGE -@app.route('/users//messages/new', methods=['GET','POST']) -def messages_new(user_id): - message_form = MessageForm(request.form) - return render_template('messages/new.html', user=User.query.get(user_id), form=message_form) - -#EDIT MESSAGE FORM -@app.route('/users//messages//edit') -def messages_edit(user_id, id): - found_message = Message.query.get(id) - message_form = MessageForm(obj=found_message) - return render_template('messages/edit.html', message=found_message, form=message_form) - -# EDIT MESSAGE -@app.route('/users//messages/', methods=['GET','PATCH','DELETE']) -def messages_show(user_id, id): - found_message = Message.query.get(id) - if request.method == b'PATCH': - message_form = MessageForm(request.form) - if message_form.validate(): - found_message.content = request.form['content'] - db.session.add(found_message) - db.session.commit() - return redirect(url_for('messages_index', user_id=user_id)) - return render_template('messages/edit.html', message=found_message, form=message_form) - if request.method == b'DELETE': - delete_form = DeleteForm(request.form) - if delete_form.validate(): - db.session.delete(found_message) - db.session.commit() - return redirect(url_for('messages_index', user_id=user_id)) - return render_template('messages/show.html', message=found_message) - +from project import app if __name__ == '__main__': app.run(debug=True,port=3000) \ No newline at end of file diff --git a/Unit-02/01-blueprints/project/.DS_Store b/Unit-02/01-blueprints/project/.DS_Store index 0544500974f90a67cab8b2632aa62c330bdabbaa..a5c9e71125d0c08c093285432cf826ac70556313 100644 GIT binary patch literal 8196 zcmeHMU2GIp6h5adFc)Y$RA@Vtg_WlK*+R=d%FnjDAf+J0ZE4GoWp-z1C(h0+JF~k$ zt*J(NFoKa6iN0ujFhJrHKKO$A;7>3SAF6_h5BlPx(P-k6@!Wf7o3d>~;)6<<+sys$ z+;h(T`R3cXd$s_8U3sGepb-ERx;Ux}sG6a0JHMutilC>O5Gfu&hhZ?mOBKEBH1Dt@ zWFTZ9WFTZ9WFTbV|G)s9*}N#Tocq!m)*%BS0}mww{QVH6i(@Rnaf#y9L6t}W2&<@D z6lzl*AY!5c#sVCdC_-sWnLS_-ib0BjGMwyD?oJpBa9pAc2bAG}!OR$BC@5y9xTtUk zj7bdZkb#ha=?w7PU4abG+Uajf{+_bk6xlvcWo^sz+uOgxipr`vbLT0_d}V(1{FBKM zx0v*GKks$vx#Rrqi0+T1f_AU#+LLWPb<{G8L+awV>-f6mm^l$_878@$=(ilhEq1wi z$MD2BNoi0Nrm!Kkesr|0y*0XZ%UEl4blXO1ZtvJMHpY~OmX2NBr!wcxk3Ki{{2Ov- z7`z>zwrr1KOz#i^Mrrpfc-!Z29c!jv+sp4{pr#mH{7+aw2?>^8o zq^fz(eA={i-zu01-8a1v%`aoJYvm^@U3!D_1?%zUA@V@rml1T6Iw! zW5rCGA&xtvfuh7^DgI0dXHTW!s`hmiPrFn&>9p{#K&ZOE}g{gnCh|KXGs;JN889YE2_czY&~V#vTGaLp{PBqzaY0OJL}jkg$>Xn%g`o0 zG3}n1rai-_J*a#B;jHP#8@`6S@FV;Tzrt_uJNyBE;XGW7_1J)o z_$apFdfb59aR)wuJFycFU=JR`r!a{p@FWi5DLjoXW-*5zj^a!BGG4&f@Cv?%SMeHN z#~XMPKf;gk6TF4D@s3H z<;`o_Hg4M)n|zpM&v2@egmk1fgl0;b5D)PlF>*m`OPg4vkECUuEthji=IT5ye`P`= zjYOi6l?o|F4Q^W^s}<6;S|P?-yDq}iN|LYmtZ3^uu!uT`l&T2prp=70RU~C;-M)jY zb4j#vDAvUGkR8M{tR)g>ii)#Ia8?1n1J~d~_!MrD@V=VGW6{5u0!s zMsO9b#JVOG^V*!gejxXSgB*lw( ziKO^CUdFfZZ7H!y;q5O;P9k0!fu$6F)Ap;=;|BwN!N+c6q6kPf$Q9cgOwWD;MqKg;qH!e|xP$klFLXnOWPX5D? i+EH@lF|h#0B~lNSfBlDm@cgH*pW*pGnfX1W=l|bu2xZ6s delta 150 zcmZp1XfcprU|?W$DortDU=RQ@Ie-{MGjdEU6q~50D9Q%nfW;CS(iu`2igVHpgC`a) zXJnf!AZRhUSS)%nuek2yK=ExG8(LWxvvY6=G6S^$fdDs(JnZpbKT%i`; diff --git a/Unit-02/01-blueprints/project/__init__.py b/Unit-02/01-blueprints/project/__init__.py index e69de29..126a835 100644 --- a/Unit-02/01-blueprints/project/__init__.py +++ b/Unit-02/01-blueprints/project/__init__.py @@ -0,0 +1,24 @@ +from flask import Flask, url_for, redirect +from flask_sqlalchemy import SQLAlchemy +from flask_modus import Modus +import os + + +app = Flask(__name__) +app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://localhost/users-app-db' +app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False +app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY') +db = SQLAlchemy(app) +modus = Modus(app) + + +from project.users.views import users_blueprint +from project.messages.views import messages_blueprint + +app.register_blueprint(users_blueprint, url_prefix='/users') +app.register_blueprint(messages_blueprint, url_prefix='/users//messages') + +@app.route('/') +def root(): + return redirect(url_for('users.index')) + diff --git a/Unit-02/01-blueprints/project/messages/.DS_Store b/Unit-02/01-blueprints/project/messages/.DS_Store index fee72b060da56a518408666d0196cbf58184cff3..e7390b5903c367bf157635e9d4097a3271569177 100644 GIT binary patch literal 8196 zcmeHMU2GIp6u#e5=u9WjDIx{!goU>9lL9RulnA)pwqnaqE8EiYTV{90cH->JvNPLK zO0gzB2^yY6jfSW%{yhptpNu{z(ZqlRBjLpt)CYaQL`jT^=gysNfNqrsW128Gx%b?A z&pG$!oA2J6v&$GmvS2hZwumt%QRY%rs3?)Rp64kk7WT*_LH>-{OlLkbnU@}!VjXov z2t)`(2t)`(2t)|X1O({K=1H37-51)Zj1Y(rxGxdl_d}dAmx)kL2pL=*R0JUa$ujB= z64faV2z=t9OoVbm$iS7x6ww1hSA-!3ggfcu+?-@0loLVze8+R+3Y#xl2jp8%&j<- z8gfTczU~*iq@F*(Tiv=pln(1Xu4_-$_4HoL92rm-w7QP3TaK9zoGrs7lY@PhW4I$p zx8N9FFiuJ+BuSR!0d?Wn*y_fH_{K-a8{%V|)={;&Y5n-PELGPxZS6Rc9X&pFV*KP; zu{VVG1FO7iudkHesNrSoG%c08mB7IsY)WO^Z0@$fN?Ccstpcss#UfhQifG9diZWO0 z+|jvn*X{vTEqLZ0)7E`!*lg2%(;HALJ%X+y<2v1WbC_W2%eZzS>yV}@quZGR8JjJ( zowAM#>rCFY?QYkze9LwA_50>ApX>NQcc}XJdv4xu4F>DCXnbKcpU=^inG!D&P zzf{u>a7}C8q|yi-R<6>N9*_2_>Y?G9wTja74DmW;8;>jFjVr%#)uEqY;JOH$Jg^J#bLp5K)-9a_?td~Vv>6SSm#T-Rb4d_hue zkrTCv6`~q|QJZKKEtNlM8f#=p*2xaj;TmP9*vsr3`;eVy7uaX)D|VG#XE)fd>^Js1 z`-9yAP>w1r#xm5Q9*Yas(&td!_5sIj1_G}Nq-iSp_!p>0yu zOGIvUw$N@=nq{KDS|+rQDO)9CxjIK^HKj$CRVEtCYuaT=#lLd*ADMfRU1mS9U)W7{ zi~WV!s6aL1Sb;TY4%nJRE84LeU3dz6(1SxbOuW^RfsHI&HA!Oh}MG%gY48n1elYbaeJx-?FClSgCA*qMb|NcWj^!`Wh N|I~mt>)vPY|KHq_ieCT# delta 142 zcmZp1XfcprU|?W$DortDU=RQ@Ie-{MGjdEU6q~50D9QrjfW>kc5*bPuQW=VK(kB)! zXJnZyB4{)DtyuiVngq7R>>M0|%s{0;AixbITtP-`Ed0(qnP0|I0VE7Ggb7N6%mi^j OmVxYN*c{I@hZz7&(pJw#f#JB2pl3QcivnP#I7S mgEbIq{0D={dW>S6DaFY-N%{FXj3C9E6&Po+ZD!~A%MSoc&l*tx delta 51 zcmZoMXfc@JFUrEez`)4BAi%(o$dJyE%21q>ZWuiIA>(pJmdOhlMKEdit message -
+ {{ form.hidden_tag() }} {% for field in form if field.widget.input_type != 'hidden' %}

- {{field.label }} + {{ field.label }} {{ field }} {% if field.errors %} diff --git a/Unit-02/01-blueprints/project/messages/templates/messages/index.html b/Unit-02/01-blueprints/project/messages/templates/messages/index.html index fec9dc7..7a43614 100644 --- a/Unit-02/01-blueprints/project/messages/templates/messages/index.html +++ b/Unit-02/01-blueprints/project/messages/templates/messages/index.html @@ -1,14 +1,14 @@ {% extends 'base.html' %} {% block content %} - Add a new message, {{ user.first_name }}! + Add a new message, {{ user.first_name }}!

See all the messages for {{user.first_name}}

{% for message in user.messages %}

{{ message.content }}
- Edit message - + Edit message + {{ delete_form.hidden_tag() }}

diff --git a/Unit-02/01-blueprints/project/messages/templates/messages/new.html b/Unit-02/01-blueprints/project/messages/templates/messages/new.html index e9f05d6..c7ac8c0 100644 --- a/Unit-02/01-blueprints/project/messages/templates/messages/new.html +++ b/Unit-02/01-blueprints/project/messages/templates/messages/new.html @@ -2,7 +2,7 @@ {% block content %}

Add a new message

-
+ {{ form.hidden_tag() }} {% for field in form if field.widget.input_type != 'hidden' %}

diff --git a/Unit-02/01-blueprints/project/messages/templates/messages/show.html b/Unit-02/01-blueprints/project/messages/templates/messages/show.html index e69de29..3921f2d 100644 --- a/Unit-02/01-blueprints/project/messages/templates/messages/show.html +++ b/Unit-02/01-blueprints/project/messages/templates/messages/show.html @@ -0,0 +1,12 @@ +{% extends 'base.html' %} + +{% block content %} +

Here is your message: {{message.content}}

+ +Edit this message! + +

Delete user

+ + +
+{% endblock %} \ No newline at end of file diff --git a/Unit-02/01-blueprints/project/messages/views.py b/Unit-02/01-blueprints/project/messages/views.py index e69de29..3e2fe9b 100644 --- a/Unit-02/01-blueprints/project/messages/views.py +++ b/Unit-02/01-blueprints/project/messages/views.py @@ -0,0 +1,60 @@ +from flask import redirect, render_template, request, url_for, flash, Blueprint +from project.messages.forms import MessageForm, DeleteForm +from project.models import Message, User +from project import db + +messages_blueprint = Blueprint( + 'messages', + __name__, + template_folder='templates' + ) + +@messages_blueprint.route('/', methods=['GET', 'POST']) +def index(user_id): + #find a user + delete_form = DeleteForm() + if request.method == 'POST': + message_form = MessageForm(request.form) + if message_form.validate(): + new_message = Message(message_form.content.data, user_id) + db.session.add(new_message) + db.session.commit() + flash('Message Created!') + return redirect(url_for('messages.index', user_id=user_id)) + return render_template('messages/new.html', user=User.query.get(user_id), form=message_form) + return render_template('messages/index.html', user=User.query.get(user_id), delete_form=delete_form) + +# NEW MESSAGE +@messages_blueprint.route('/new', methods=['GET','POST']) +def new(user_id): + message_form = MessageForm() + return render_template('messages/new.html', user=User.query.get(user_id), form=message_form) + +#EDIT MESSAGE FORM +@messages_blueprint.route('/edit') +def edit(user_id, id): + found_message = Message.query.get(id) + message_form = MessageForm(obj=found_message) + return render_template('messages/edit.html', message=found_message, form=message_form) + +# EDIT MESSAGE +@messages_blueprint.route('/', methods=['GET','PATCH','DELETE']) +def show(user_id, id): + found_message = Message.query.get(id) + if request.method == b'PATCH': + message_form = MessageForm(request.form) + if message_form.validate(): + found_message.content = message_form.content.data + db.session.add(found_message) + db.session.commit() + flash('Message Updated!') + return redirect(url_for('messages.index', user_id=user_id)) + return render_template('messages/edit.html', message=found_message, form=message_form) + if request.method == b'DELETE': + delete_form = DeleteForm(request.form) + if delete_form.validate(): + db.session.delete(found_message) + db.session.commit() + flash('Message Deleted!') + return redirect(url_for('messages.index', user_id=user_id)) + return render_template('messages/show.html', message=found_message) \ No newline at end of file diff --git a/Unit-02/01-blueprints/project/models.py b/Unit-02/01-blueprints/project/models.py new file mode 100644 index 0000000..9ce17e4 --- /dev/null +++ b/Unit-02/01-blueprints/project/models.py @@ -0,0 +1,32 @@ +from project import db + + +class User(db.Model): + + __tablename__ = 'users' + __table_args__ = {'extend_existing': True} + + + id = db.Column(db.Integer, primary_key=True) + first_name = db.Column(db.Text) + last_name = db.Column(db.Text) + messages = db.relationship('Message', backref='user', lazy='dynamic', cascade='all,delete') + + def __init__(self, first_name, last_name): + self.first_name = first_name + self.last_name = last_name + + +class Message(db.Model): + + __tablename__ = 'messages' + __table_args__ = {'extend_existing': True} + +# DDL + id = db.Column(db.Integer, primary_key=True) + content = db.Column(db.Text) + user_id = db.Column(db.Integer, db.ForeignKey('users.id')) +# DML + def __init__(self, content, user_id): + self.content = content + self.user_id = user_id \ No newline at end of file diff --git a/Unit-02/01-blueprints/project/templates/base.html b/Unit-02/01-blueprints/project/templates/base.html index 0ac8ee0..a5baf27 100644 --- a/Unit-02/01-blueprints/project/templates/base.html +++ b/Unit-02/01-blueprints/project/templates/base.html @@ -5,7 +5,15 @@ Users App!! - Home + Home + {% with messages = get_flashed_messages() %} + {% if messages %} + {% for message in messages %} +

{{message}}

+ {% endfor %} + {% endif %} + {% endwith %} + {% block content %} {% endblock %} diff --git a/Unit-02/01-blueprints/project/users/.DS_Store b/Unit-02/01-blueprints/project/users/.DS_Store index 2240d5d0fb16182d18f363d6d5d4a7e573903816..494a88ce1d8633f3bedb29b3664b9c2fc106f7a3 100644 GIT binary patch delta 62 zcmZoMXfc@JFUrcmz`)4BAi%(o!;r{O!jQ^PoKie_A>(pJ*2#5@Vw@?($vH{+`8kXr Q-ex7nV{Dt*IsWnk0L9c0VE_OC delta 51 zcmZoMXfc@JFUrEez`)4BAi%(o!;r{O!jQ^PoRdEJAmegImdSyPVw)WqkFiZ`kl)PC H@s}R}CZ-J; diff --git a/Unit-02/01-blueprints/project/users/forms.py b/Unit-02/01-blueprints/project/users/forms.py index db17408..49f44da 100644 --- a/Unit-02/01-blueprints/project/users/forms.py +++ b/Unit-02/01-blueprints/project/users/forms.py @@ -5,8 +5,5 @@ class UserForm(FlaskForm): first_name = StringField('First Name', [validators.DataRequired()]) last_name = StringField('Last Name', [validators.DataRequired()]) -class MessageForm(FlaskForm): - content = StringField('Content', [validators.DataRequired()]) - class DeleteForm(FlaskForm): pass \ No newline at end of file diff --git a/Unit-02/01-blueprints/project/users/models.py b/Unit-02/01-blueprints/project/users/models.py deleted file mode 100644 index e69de29..0000000 diff --git a/Unit-02/01-blueprints/project/users/templates/.DS_Store b/Unit-02/01-blueprints/project/users/templates/.DS_Store index af833e7bc54316153ed697bd4ae4f1a271cc4a9c..ec0ac218d0b0a664c5da4ebea92c74697aad432f 100644 GIT binary patch delta 100 zcmZoMXfc=|#>B`mu~2NHo}vgV0|Nsi1A_nqLvc!Ra!yiyeh%YgM#dEqAPH86QifuN qRE8oX$&Ecv*fz6s@N)po*v!cIoq009h#?2i2!;kA-s~Z=hZz8TMHb!w delta 72 zcmZoMXfc=|#>CJ*u~2NHo+2j;0|Nsi1A_p=WPL`_$@3WH7+E$eGd^LPyn%80W_AvK c4xrM_3mLyNPv#dfWMr6Z!y~;pMq~vu0B>*+)Bpeg diff --git a/Unit-02/01-blueprints/project/users/templates/users/edit.html b/Unit-02/01-blueprints/project/users/templates/users/edit.html index f206e64..06cbbb1 100644 --- a/Unit-02/01-blueprints/project/users/templates/users/edit.html +++ b/Unit-02/01-blueprints/project/users/templates/users/edit.html @@ -3,7 +3,7 @@ {% block content %}

Edit: {{ user.first_name }} {{ user.last_name }}

-
+ {{ form.hidden_tag() }} {% for field in form if field.widget.input_type != 'hidden' %}

diff --git a/Unit-02/01-blueprints/project/users/templates/users/index.html b/Unit-02/01-blueprints/project/users/templates/users/index.html index ac73dc7..97791ad 100644 --- a/Unit-02/01-blueprints/project/users/templates/users/index.html +++ b/Unit-02/01-blueprints/project/users/templates/users/index.html @@ -1,7 +1,7 @@ {% extends 'base.html' %} {% block content %} -Make a new user! +Make a new user!

See all users!

{% for user in users %} @@ -9,11 +9,11 @@

See all users!

{{ user.first_name }} {{ user.last_name }}
- See all messages for {{user.first_name}} + See all messages for {{user.first_name}}
- Edit a user! + Edit a user!
- + {{delete_form.hidden_tag()}}

diff --git a/Unit-02/01-blueprints/project/users/templates/users/new.html b/Unit-02/01-blueprints/project/users/templates/users/new.html index a27eb1c..dcb4f62 100644 --- a/Unit-02/01-blueprints/project/users/templates/users/new.html +++ b/Unit-02/01-blueprints/project/users/templates/users/new.html @@ -2,7 +2,7 @@ {% block content %}

Add a new user!

-
+ {{ form.hidden_tag() }} {% for field in form if field.widget.input_type != 'hidden' %}

diff --git a/Unit-02/01-blueprints/project/users/templates/users/show.html b/Unit-02/01-blueprints/project/users/templates/users/show.html index 68da160..59cc0ab 100644 --- a/Unit-02/01-blueprints/project/users/templates/users/show.html +++ b/Unit-02/01-blueprints/project/users/templates/users/show.html @@ -3,10 +3,10 @@ {% block content %}

Here is your user: {{user.first_name}} {{user.last_name}}

-Edit this user! +Edit this user!

Delete user

- +
{% endblock %} \ No newline at end of file diff --git a/Unit-02/01-blueprints/project/users/views.py b/Unit-02/01-blueprints/project/users/views.py index e69de29..c14a6b3 100644 --- a/Unit-02/01-blueprints/project/users/views.py +++ b/Unit-02/01-blueprints/project/users/views.py @@ -0,0 +1,58 @@ +from flask import redirect, render_template, request, url_for, flash, Blueprint +from project.users.forms import UserForm, DeleteForm +from project.models import User +from project import db + +users_blueprint = Blueprint( + 'users', + __name__, + template_folder='templates' + ) + +@users_blueprint.route('/', methods=['GET', 'POST']) +def index(): + delete_form = DeleteForm() + if request.method == 'POST': + form = UserForm(request.form) + if form.validate(): + new_user = User(request.form['first_name'], request.form['last_name']) + db.session.add(new_user) + db.session.commit() + flash('User Created!') + return redirect(url_for('users.index')) + else: + return render_template('users/new.html', form=form) + return render_template('users/index.html', users=User.query.all(), delete_form=delete_form) + +@users_blueprint.route('/new') +def new(): + user_form = UserForm() + return render_template('users/new.html', form=user_form) + +@users_blueprint.route('/', methods=['GET','PATCH', 'DELETE']) +def show(id): + found_user = User.query.get(id) + if request.method == b'PATCH': + form = UserForm(request.form) + if form.validate(): + found_user.first_name = form.first_name.data + found_user.last_name = form.last_name.data + db.session.add(found_user) + db.session.commit() + flash('User Updated!') + return redirect(url_for('users.index')) + return render_template('users/edit.html', user=found_user, form=form) + if request.method == b'DELETE': + delete_form = DeleteForm(request.form) + if delete_form.validate(): + db.session.delete(found_user) + db.session.commit() + flash('User Deleted!') + return redirect(url_for('users.index')) + return render_template('users/show.html', user=found_user) + +@users_blueprint.route('//edit') +def edit(id): + found_user = User.query.get(id) + user_form = UserForm(obj=found_user) + return render_template('users/edit.html', user=found_user, form=user_form) From 6a2cc4a4285b3aa7641d3042de043a0434fb8d46 Mon Sep 17 00:00:00 2001 From: Trevor Hoy Date: Sun, 3 Dec 2017 23:43:47 -0800 Subject: [PATCH 5/7] final blueprint structure --- .../project/messages/templates/messages/edit.html | 2 +- .../project/messages/templates/messages/index.html | 2 +- .../project/messages/templates/messages/show.html | 7 ++----- Unit-02/01-blueprints/project/messages/views.py | 8 ++++++-- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Unit-02/01-blueprints/project/messages/templates/messages/edit.html b/Unit-02/01-blueprints/project/messages/templates/messages/edit.html index 2748b72..6347f10 100644 --- a/Unit-02/01-blueprints/project/messages/templates/messages/edit.html +++ b/Unit-02/01-blueprints/project/messages/templates/messages/edit.html @@ -2,7 +2,7 @@ {% block content %}

Edit message

-
+ {{ form.hidden_tag() }} {% for field in form if field.widget.input_type != 'hidden' %}

diff --git a/Unit-02/01-blueprints/project/messages/templates/messages/index.html b/Unit-02/01-blueprints/project/messages/templates/messages/index.html index 7a43614..bcd44db 100644 --- a/Unit-02/01-blueprints/project/messages/templates/messages/index.html +++ b/Unit-02/01-blueprints/project/messages/templates/messages/index.html @@ -7,7 +7,7 @@

See all the messages for {{user.first_name}}

{{ message.content }}
- Edit message + Edit message {{ delete_form.hidden_tag() }} diff --git a/Unit-02/01-blueprints/project/messages/templates/messages/show.html b/Unit-02/01-blueprints/project/messages/templates/messages/show.html index 3921f2d..e3522fe 100644 --- a/Unit-02/01-blueprints/project/messages/templates/messages/show.html +++ b/Unit-02/01-blueprints/project/messages/templates/messages/show.html @@ -3,10 +3,7 @@ {% block content %}

Here is your message: {{message.content}}

-Edit this message! +Edit this message! + -

Delete user

- - -
{% endblock %} \ No newline at end of file diff --git a/Unit-02/01-blueprints/project/messages/views.py b/Unit-02/01-blueprints/project/messages/views.py index 3e2fe9b..49d7811 100644 --- a/Unit-02/01-blueprints/project/messages/views.py +++ b/Unit-02/01-blueprints/project/messages/views.py @@ -31,7 +31,7 @@ def new(user_id): return render_template('messages/new.html', user=User.query.get(user_id), form=message_form) #EDIT MESSAGE FORM -@messages_blueprint.route('/edit') +@messages_blueprint.route('//edit') def edit(user_id, id): found_message = Message.query.get(id) message_form = MessageForm(obj=found_message) @@ -57,4 +57,8 @@ def show(user_id, id): db.session.commit() flash('Message Deleted!') return redirect(url_for('messages.index', user_id=user_id)) - return render_template('messages/show.html', message=found_message) \ No newline at end of file + return render_template('messages/show.html', message=found_message) + + + + From 98ad7ea2fe5694a1b8a5cd0ea7e34d30a32f508f Mon Sep 17 00:00:00 2001 From: Trevor Hoy Date: Mon, 4 Dec 2017 22:19:47 -0800 Subject: [PATCH 6/7] added boostrap --- Unit-02/01-blueprints/project/templates/base.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Unit-02/01-blueprints/project/templates/base.html b/Unit-02/01-blueprints/project/templates/base.html index a5baf27..fe4f7b5 100644 --- a/Unit-02/01-blueprints/project/templates/base.html +++ b/Unit-02/01-blueprints/project/templates/base.html @@ -3,6 +3,11 @@ Users App!! + + + + + Home From 974aace2eb15beb01d1626ad448f5a254351898e Mon Sep 17 00:00:00 2001 From: Trevor Hoy Date: Sat, 9 Dec 2017 10:06:07 -0800 Subject: [PATCH 7/7] added minimal styling --- .../01-blueprints/project/templates/base.html | 19 ++++++++++++++++--- .../project/users/templates/users/index.html | 3 +-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/Unit-02/01-blueprints/project/templates/base.html b/Unit-02/01-blueprints/project/templates/base.html index fe4f7b5..21c41d9 100644 --- a/Unit-02/01-blueprints/project/templates/base.html +++ b/Unit-02/01-blueprints/project/templates/base.html @@ -4,13 +4,24 @@ Users App!! - + + + - Home + +
{% with messages = get_flashed_messages() %} {% if messages %} {% for message in messages %} @@ -18,8 +29,10 @@ {% endfor %} {% endif %} {% endwith %} - +
+
{% block content %} {% endblock %} +
\ No newline at end of file diff --git a/Unit-02/01-blueprints/project/users/templates/users/index.html b/Unit-02/01-blueprints/project/users/templates/users/index.html index 97791ad..48bcc3a 100644 --- a/Unit-02/01-blueprints/project/users/templates/users/index.html +++ b/Unit-02/01-blueprints/project/users/templates/users/index.html @@ -7,8 +7,7 @@

See all users!

{% for user in users %}

- {{ user.first_name }} {{ user.last_name }} -
+

{{ user.first_name }} {{ user.last_name }}
See all messages for {{user.first_name}}
Edit a user!