diff --git a/README.md b/README.md new file mode 100644 index 0000000..efd7509 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# User Login System Tutorial + +Learn how to build a basic user login system using Python, Flask, and MongoDB. + +This repository contains source code for my tutorial series on YouTube: https://www.youtube.com/playlist?list=PL4JDh0LtP7jr0nNuoW-KB-O2uABkaMhL1 diff --git a/app.py b/flaskapp/__init__.py similarity index 54% rename from app.py rename to flaskapp/__init__.py index 681f649..b6e83b7 100644 --- a/app.py +++ b/flaskapp/__init__.py @@ -1,4 +1,4 @@ -from flask import Flask, render_template, session, redirect +from flask import Flask, session, redirect from functools import wraps import pymongo @@ -7,7 +7,7 @@ # Database client = pymongo.MongoClient('localhost', 27017) -db = client.user_login_system +db = client.user_login_system_test # Decorators def login_required(f): @@ -18,16 +18,4 @@ def wrap(*args, **kwargs): else: return redirect('/') - return wrap - -# Routes -from user import routes - -@app.route('/') -def home(): - return render_template('home.html') - -@app.route('/dashboard/') -@login_required -def dashboard(): - return render_template('dashboard.html') \ No newline at end of file + return wrap \ No newline at end of file diff --git a/static/css/normalize.css b/flaskapp/static/css/normalize.css similarity index 100% rename from static/css/normalize.css rename to flaskapp/static/css/normalize.css diff --git a/static/css/styles.css b/flaskapp/static/css/styles.css similarity index 100% rename from static/css/styles.css rename to flaskapp/static/css/styles.css diff --git a/static/js/jquery.js b/flaskapp/static/js/jquery.js similarity index 100% rename from static/js/jquery.js rename to flaskapp/static/js/jquery.js diff --git a/static/js/scripts.js b/flaskapp/static/js/scripts.js similarity index 100% rename from static/js/scripts.js rename to flaskapp/static/js/scripts.js diff --git a/templates/base.html b/flaskapp/templates/base.html similarity index 100% rename from templates/base.html rename to flaskapp/templates/base.html diff --git a/templates/dashboard.html b/flaskapp/templates/dashboard.html similarity index 100% rename from templates/dashboard.html rename to flaskapp/templates/dashboard.html diff --git a/templates/home.html b/flaskapp/templates/home.html similarity index 100% rename from templates/home.html rename to flaskapp/templates/home.html diff --git a/user/__init__.py b/flaskapp/user/__init__.py similarity index 100% rename from user/__init__.py rename to flaskapp/user/__init__.py diff --git a/user/models.py b/flaskapp/user/models.py similarity index 93% rename from user/models.py rename to flaskapp/user/models.py index 2f13ea9..173d67f 100644 --- a/user/models.py +++ b/flaskapp/user/models.py @@ -1,6 +1,6 @@ -from flask import Flask, jsonify, request, session, redirect +from flask import jsonify, request, session, redirect from passlib.hash import pbkdf2_sha256 -from app import db +from flaskapp import db import uuid class User: diff --git a/user/routes.py b/flaskapp/user/routes.py similarity index 76% rename from user/routes.py rename to flaskapp/user/routes.py index 335f2a4..798e5b5 100644 --- a/user/routes.py +++ b/flaskapp/user/routes.py @@ -1,6 +1,5 @@ -from flask import Flask -from app import app -from user.models import User +from flaskapp import app +from flaskapp.user.models import User @app.route('/user/signup', methods=['POST']) def signup(): diff --git a/run b/run deleted file mode 100755 index e7690b9..0000000 --- a/run +++ /dev/null @@ -1 +0,0 @@ -FLASK_APP=app.py FLASK_ENV=development flask run \ No newline at end of file diff --git a/run.py b/run.py new file mode 100644 index 0000000..c6e5d1a --- /dev/null +++ b/run.py @@ -0,0 +1,15 @@ +from flask import render_template +from flaskapp import app, login_required +from flaskapp.user.routes import * + +@app.route('/') +def home(): + return render_template('home.html') + +@app.route('/dashboard/') +@login_required +def dashboard(): + return render_template('dashboard.html') + +if __name__ == '__main__': + app.run(debug=True) \ No newline at end of file