diff --git a/David Savage/Login_and_Registration/Session/David_Savage_Displaying_Blocks.css b/David Savage/Login_and_Registration/Session/David_Savage_Displaying_Blocks.css new file mode 100644 index 00000000..ff45046a --- /dev/null +++ b/David Savage/Login_and_Registration/Session/David_Savage_Displaying_Blocks.css @@ -0,0 +1,108 @@ +/**{ + outline: 2px dotted red +} +*/ +.Page_Container{ + width: 1110px; + height: 860px; + background-color: #efe1b6; + display: block; + vertical-align: top; +/* outline: 2px dotted blue;*/ + border: 10px; + border-style: solid; + border-color: black; + +} + +.column_container_one{ + width: 211px; + height: 830px; + background-color: #efe1b6; + display: inline-block; + vertical-align: top; +/* outline: 2px dotted blue;*/ + padding-top: 30px; + padding-left: 30px; + +} + +.column_container_two{ + width: 211px; + height: 830px; + background-color: #efe1b6; + display: inline-block; + vertical-align: top; + padding-top: 30px; +/* outline: 2px dotted blue;*/ + + +} + +.column_container_three{ + width: 211px; + height: 830px; + background-color: #efe1b6; + display: inline-block; + vertical-align: top; + padding-top: 30px; +/* outline: 2px dotted blue;*/ + +} + +.column_container_four{ + width: 211px; + height: 830px; + background-color: #efe1b6; + display: inline-block; + vertical-align: top; + padding-top: 30px; +/* outline: 2px dotted blue;*/ + +} + +.column_container_five{ + width: 211px; + height: 830px; + background-color: #efe1b6; + display: inline-block; + vertical-align: top; + padding-top: 30px; +/* outline: 2px dotted blue;*/ + +} + +.cat_picture_blue{ + border-style: solid; + border_width: 5px; + /*outline*/: 2px solid black; + border: 30px 30px 30px 30px; + border-color: #42d9f4; +/* padding: 10px 10px 10px 10px; + margin: 0px 5px 10px 10px;*/ + background-color: #42d9f4; + display: block; + margin-bottom: 30px; + + +} + +.cat_picture_red{ + border-style: solid; + border_width: 5px; + /*outline*/: 2px solid black; + border: 30px 0px 30px 30px; +/* border-color: #ed1777;*/ + border-color: black; +/* padding: 10px 0px 12px 10px; + margin: 0px 5px 10px 10px;*/ + background-color: #ed1777; + display: block; + margin-bottom: 30px; + + + +} + + + diff --git a/David Savage/Login_and_Registration/Session/Index.css b/David Savage/Login_and_Registration/Session/Index.css new file mode 100644 index 00000000..5d10f41f --- /dev/null +++ b/David Savage/Login_and_Registration/Session/Index.css @@ -0,0 +1,8 @@ +*{ + /*outline: 2px dotted black;*/ +} + +.error{ + color: red; + background-color: orange; +} \ No newline at end of file diff --git a/David Savage/Login_and_Registration/Session/adventure-cat.png b/David Savage/Login_and_Registration/Session/adventure-cat.png new file mode 100644 index 00000000..e88a4b04 Binary files /dev/null and b/David Savage/Login_and_Registration/Session/adventure-cat.png differ diff --git a/David Savage/Login_and_Registration/Session/aidorucat.png b/David Savage/Login_and_Registration/Session/aidorucat.png new file mode 100644 index 00000000..d5325e0d Binary files /dev/null and b/David Savage/Login_and_Registration/Session/aidorucat.png differ diff --git a/David Savage/Login_and_Registration/Session/cat_growl.wav b/David Savage/Login_and_Registration/Session/cat_growl.wav new file mode 100644 index 00000000..cf61ed75 Binary files /dev/null and b/David Savage/Login_and_Registration/Session/cat_growl.wav differ diff --git a/David Savage/Login_and_Registration/Session/catandninja.png b/David Savage/Login_and_Registration/Session/catandninja.png new file mode 100644 index 00000000..9cca3756 Binary files /dev/null and b/David Savage/Login_and_Registration/Session/catandninja.png differ diff --git a/David Savage/Login_and_Registration/Session/chellocat.jpg b/David Savage/Login_and_Registration/Session/chellocat.jpg new file mode 100644 index 00000000..44d7d2e7 Binary files /dev/null and b/David Savage/Login_and_Registration/Session/chellocat.jpg differ diff --git a/David Savage/Login_and_Registration/Session/cherry.jpg b/David Savage/Login_and_Registration/Session/cherry.jpg new file mode 100644 index 00000000..361d3622 Binary files /dev/null and b/David Savage/Login_and_Registration/Session/cherry.jpg differ diff --git a/David Savage/Login_and_Registration/Session/coder2.jpg b/David Savage/Login_and_Registration/Session/coder2.jpg new file mode 100644 index 00000000..fa6a4277 Binary files /dev/null and b/David Savage/Login_and_Registration/Session/coder2.jpg differ diff --git a/David Savage/Login_and_Registration/Session/codercat.jpg b/David Savage/Login_and_Registration/Session/codercat.jpg new file mode 100644 index 00000000..831a04b4 Binary files /dev/null and b/David Savage/Login_and_Registration/Session/codercat.jpg differ diff --git a/David Savage/Login_and_Registration/Session/cooler.png b/David Savage/Login_and_Registration/Session/cooler.png new file mode 100644 index 00000000..21827aab Binary files /dev/null and b/David Savage/Login_and_Registration/Session/cooler.png differ diff --git a/David Savage/Login_and_Registration/Session/daftpunk.gif b/David Savage/Login_and_Registration/Session/daftpunk.gif new file mode 100644 index 00000000..e687f84b Binary files /dev/null and b/David Savage/Login_and_Registration/Session/daftpunk.gif differ diff --git a/David Savage/Login_and_Registration/Static/David_Savage_Displaying_Blocks.css b/David Savage/Login_and_Registration/Static/David_Savage_Displaying_Blocks.css new file mode 100644 index 00000000..ff45046a --- /dev/null +++ b/David Savage/Login_and_Registration/Static/David_Savage_Displaying_Blocks.css @@ -0,0 +1,108 @@ +/**{ + outline: 2px dotted red +} +*/ +.Page_Container{ + width: 1110px; + height: 860px; + background-color: #efe1b6; + display: block; + vertical-align: top; +/* outline: 2px dotted blue;*/ + border: 10px; + border-style: solid; + border-color: black; + +} + +.column_container_one{ + width: 211px; + height: 830px; + background-color: #efe1b6; + display: inline-block; + vertical-align: top; +/* outline: 2px dotted blue;*/ + padding-top: 30px; + padding-left: 30px; + +} + +.column_container_two{ + width: 211px; + height: 830px; + background-color: #efe1b6; + display: inline-block; + vertical-align: top; + padding-top: 30px; +/* outline: 2px dotted blue;*/ + + +} + +.column_container_three{ + width: 211px; + height: 830px; + background-color: #efe1b6; + display: inline-block; + vertical-align: top; + padding-top: 30px; +/* outline: 2px dotted blue;*/ + +} + +.column_container_four{ + width: 211px; + height: 830px; + background-color: #efe1b6; + display: inline-block; + vertical-align: top; + padding-top: 30px; +/* outline: 2px dotted blue;*/ + +} + +.column_container_five{ + width: 211px; + height: 830px; + background-color: #efe1b6; + display: inline-block; + vertical-align: top; + padding-top: 30px; +/* outline: 2px dotted blue;*/ + +} + +.cat_picture_blue{ + border-style: solid; + border_width: 5px; + /*outline*/: 2px solid black; + border: 30px 30px 30px 30px; + border-color: #42d9f4; +/* padding: 10px 10px 10px 10px; + margin: 0px 5px 10px 10px;*/ + background-color: #42d9f4; + display: block; + margin-bottom: 30px; + + +} + +.cat_picture_red{ + border-style: solid; + border_width: 5px; + /*outline*/: 2px solid black; + border: 30px 0px 30px 30px; +/* border-color: #ed1777;*/ + border-color: black; +/* padding: 10px 0px 12px 10px; + margin: 0px 5px 10px 10px;*/ + background-color: #ed1777; + display: block; + margin-bottom: 30px; + + + +} + + + diff --git a/David Savage/Login_and_Registration/Static/Index.css b/David Savage/Login_and_Registration/Static/Index.css new file mode 100644 index 00000000..5d10f41f --- /dev/null +++ b/David Savage/Login_and_Registration/Static/Index.css @@ -0,0 +1,8 @@ +*{ + /*outline: 2px dotted black;*/ +} + +.error{ + color: red; + background-color: orange; +} \ No newline at end of file diff --git a/David Savage/Login_and_Registration/Static/adventure-cat.png b/David Savage/Login_and_Registration/Static/adventure-cat.png new file mode 100644 index 00000000..e88a4b04 Binary files /dev/null and b/David Savage/Login_and_Registration/Static/adventure-cat.png differ diff --git a/David Savage/Login_and_Registration/Static/aidorucat.png b/David Savage/Login_and_Registration/Static/aidorucat.png new file mode 100644 index 00000000..d5325e0d Binary files /dev/null and b/David Savage/Login_and_Registration/Static/aidorucat.png differ diff --git a/David Savage/Login_and_Registration/Static/cat_growl.wav b/David Savage/Login_and_Registration/Static/cat_growl.wav new file mode 100644 index 00000000..cf61ed75 Binary files /dev/null and b/David Savage/Login_and_Registration/Static/cat_growl.wav differ diff --git a/David Savage/Login_and_Registration/Static/catandninja.png b/David Savage/Login_and_Registration/Static/catandninja.png new file mode 100644 index 00000000..9cca3756 Binary files /dev/null and b/David Savage/Login_and_Registration/Static/catandninja.png differ diff --git a/David Savage/Login_and_Registration/Static/chellocat.jpg b/David Savage/Login_and_Registration/Static/chellocat.jpg new file mode 100644 index 00000000..44d7d2e7 Binary files /dev/null and b/David Savage/Login_and_Registration/Static/chellocat.jpg differ diff --git a/David Savage/Login_and_Registration/Static/cherry.jpg b/David Savage/Login_and_Registration/Static/cherry.jpg new file mode 100644 index 00000000..361d3622 Binary files /dev/null and b/David Savage/Login_and_Registration/Static/cherry.jpg differ diff --git a/David Savage/Login_and_Registration/Static/coder2.jpg b/David Savage/Login_and_Registration/Static/coder2.jpg new file mode 100644 index 00000000..fa6a4277 Binary files /dev/null and b/David Savage/Login_and_Registration/Static/coder2.jpg differ diff --git a/David Savage/Login_and_Registration/Static/codercat.jpg b/David Savage/Login_and_Registration/Static/codercat.jpg new file mode 100644 index 00000000..831a04b4 Binary files /dev/null and b/David Savage/Login_and_Registration/Static/codercat.jpg differ diff --git a/David Savage/Login_and_Registration/Static/cooler.png b/David Savage/Login_and_Registration/Static/cooler.png new file mode 100644 index 00000000..21827aab Binary files /dev/null and b/David Savage/Login_and_Registration/Static/cooler.png differ diff --git a/David Savage/Login_and_Registration/Static/daftpunk.gif b/David Savage/Login_and_Registration/Static/daftpunk.gif new file mode 100644 index 00000000..e687f84b Binary files /dev/null and b/David Savage/Login_and_Registration/Static/daftpunk.gif differ diff --git a/David Savage/Login_and_Registration/Templates/David_Savage_Displaying_Blocks_With_Sound.html b/David Savage/Login_and_Registration/Templates/David_Savage_Displaying_Blocks_With_Sound.html new file mode 100644 index 00000000..fd5d3cdc --- /dev/null +++ b/David Savage/Login_and_Registration/Templates/David_Savage_Displaying_Blocks_With_Sound.html @@ -0,0 +1,59 @@ + + + + Display Blocks + + + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+
+ + +
+ + + + + \ No newline at end of file diff --git a/David Savage/Login_and_Registration/Templates/Input_and_Edit.html b/David Savage/Login_and_Registration/Templates/Input_and_Edit.html new file mode 100644 index 00000000..8ffd5c7b --- /dev/null +++ b/David Savage/Login_and_Registration/Templates/Input_and_Edit.html @@ -0,0 +1,149 @@ + + + + + + + + + + Login and Registration Input and Edit + + + +
+

Login and Registration

+
+

Register Here!

+
+ First Name: + {% with errors = get_flashed_messages(category_filter=["rfname"]) %} + {% if errors %} + {%- for msg in errors %} + {{ msg }} + {% endfor -%} + {% endif%} + {% endwith %} +

+ Last Name: + {% with errors = get_flashed_messages(category_filter=["rlname"]) %} + {% if errors %} + {%- for msg in errors %} + {{ msg }} + {% endfor -%} + {% endif%} + {% endwith %} +

+ Email: + {% with errors = get_flashed_messages(category_filter=["remail"]) %} + {% if errors %} + {%- for msg in errors %} + {{ msg }} + {% endfor -%} + {% endif%} + {% endwith %} +

+ Password: + {% with errors = get_flashed_messages(category_filter=["rpassword"]) %} + {% if errors %} + {%- for msg in errors %} + {{ msg }} + {% endfor -%} + {% endif%} + {% endwith %} +

+ Confirm Password: + {% with errors = get_flashed_messages(category_filter=["rcpassword"]) %} + {% if errors %} + {%- for msg in errors %} + {{ msg }} + {% endfor -%} + {% endif%} + {% endwith %} + + +

+
+
+
+

Login here!

+
+ Email Address: + {% with errors = get_flashed_messages(category_filter=["lemail"]) %} + {% if errors %} + {%- for msg in errors %} + {{ msg }} + {% endfor -%} + {% endif%} + {% endwith %} +

+ Password: + {% with errors = get_flashed_messages(category_filter=["lpassword"]) %} + {% if errors %} + {%- for msg in errors %} + {{ msg }} + {% endfor -%} + {% endif%} + {% endwith %} +

+ + +
+
+
+ + + diff --git a/David Savage/Login_and_Registration/Templates/Success.html b/David Savage/Login_and_Registration/Templates/Success.html new file mode 100644 index 00000000..216ee2cb --- /dev/null +++ b/David Savage/Login_and_Registration/Templates/Success.html @@ -0,0 +1,52 @@ + + + + + + + + + + Customers + + +
+

The email address you entered (___) is a valid email address! Thank You!

+

+

Email Addresses Entered

+ + {% for email in emails %} + + + + + + {% endfor %} +
Email Address: {{ email['emailAddress'] }} Date Last Updated: {{ email['updatedat'] }} +
+ +
+
+
+ + + diff --git a/David Savage/Login_and_Registration/__pycache__/mysqlconnection.cpython-36.pyc b/David Savage/Login_and_Registration/__pycache__/mysqlconnection.cpython-36.pyc new file mode 100644 index 00000000..736bc0e9 Binary files /dev/null and b/David Savage/Login_and_Registration/__pycache__/mysqlconnection.cpython-36.pyc differ diff --git a/David Savage/Login_and_Registration/mysqlconnection.py b/David Savage/Login_and_Registration/mysqlconnection.py new file mode 100644 index 00000000..8ea6661b --- /dev/null +++ b/David Savage/Login_and_Registration/mysqlconnection.py @@ -0,0 +1,43 @@ +# a cursor is the object we use to interact with the database +import pymysql.cursors +# Create a class that will give us an object that we can use to connect to a database +class MySQLConnection: + def __init__(self, db): + connection = pymysql.connect(host = 'localhost', + user = 'root', # change the user and password as needed + password = 'root', + db = db, + charset = 'utf8mb4', + cursorclass = pymysql.cursors.DictCursor, + autocommit = True) + # establish the connection to the database + self.connection = connection + # to query the database, we will use this method, which needs a query and possibly some data + def query_db(self, query, data=None): + with self.connection.cursor() as cursor: + try: + query = cursor.mogrify(query, data) + print('\nRunning Query:', query, '\n') + + executable = cursor.execute(query, data) + if query.lower().find("insert") >= 0: + # if the query is an insert, return the id of the last row, since that is the row we just added + self.connection.commit() + return cursor.lastrowid + elif query.lower().find("select") >= 0: + # if the query is a select, return everything that is fetched from the database + # the result will be a list of dictionaries + result = cursor.fetchall() + return result + else: + # if the query is not an insert or a select, such as an update or delete, commit the changes + # return nothing + self.connection.commit() + except Exception as e: + # in case the query fails + print("Something went wrong", e) + return False +# this connectToMySQL function creates an instance of MySQLConnection, which will be used by server.py +# connectToMySQL receives the database we're using and uses it to create an instance of MySQLConnection +def connectToMySQL(db): + return MySQLConnection(db) \ No newline at end of file diff --git a/David Savage/Login_and_Registration/mysqlserver.py b/David Savage/Login_and_Registration/mysqlserver.py new file mode 100644 index 00000000..b3385aba --- /dev/null +++ b/David Savage/Login_and_Registration/mysqlserver.py @@ -0,0 +1,178 @@ +from flask import Flask, render_template, request, redirect, session, flash +# import the function connectToMySQL from the file mysqlconnection.py +from mysqlconnection import connectToMySQL +from flask_bcrypt import Bcrypt +import re + +app = Flask(__name__) +app.secret_key = 'j5h)*ytg45##2*@ej' +# invoke the connectToMySQL function and pass it the name of the database we're using +# connectToMySQL returns an instance of MySQLConnection, which we will store in the variable 'mysql' +mysql = connectToMySQL('reg_and_login') +# now, we may invoke the query_db method +bcrypt = Bcrypt(app) # we are creating an object called bcrypt, + # which is made by invoking the function Bcrypt with our app as an argument +# print("Here are all the Clients: ", mysql.query_db("SELECT * FROM clients;")) +# print("Here are all the Sites: ", mysql.query_db("SELECT * FROM sites;")) +# print("Here are all the Leads: ", mysql.query_db("SELECT * FROM leads;")) +EMAIL_REGEX = re.compile(r'^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9._-]+\.[a-zA-Z]+$') + + + +# this is the route that that will issue the original HTML and to which it will come back. When the form comes back it will redirect to /process. Process will edit the form and +# flash errors and then return to here to redisplay the form OR it will redirect to success. + +@app.route('/') +def index(): + return render_template('Input_and_Edit.html') + +# This is a route to use for validation. When the redirect comes here, check the email address. If it's bad then redirect back to the +# Original / route and that will issue the flash error messages on the original form. +# If it's good then render the success form. + +@app.route('/process_reg', methods=['POST']) +def process_reg(): + + print("Made it to /process_reg") + + form_remail=request.form["remail"] + query = "SELECT emailAddress FROM users WHERE emailAddress = %(form_remail)s;" + data = { "emailAddress" : request.form['remail'] } + possible_duplicates = mysql.query_db(query, data) + print("Database read for registration ", possible_duplicates) + + + if len(request.form['rfname']) == 0: #check to be sure first name was entered + flash("Please enter a first name", 'rfname') + elif (request.form['rfname']).isalpha == 1: #check to be sure that first name is alphabetic + flash("Last name must be alphabetic", 'rfname') + elif len(request.form['rlname']) == 0: #check to be sure last name was entered + flash("Please enter a last name", 'rlname') + elif (request.form['rlname']).isalpha == 1: #check to be sure that last name is alphabetic + flash("Last name must be alphabetic", 'rlname') + + elif len(request.form['remail']) == 0: #check if email address was entered + flash("Please enter an email address", 'remail') + elif possible_duplicates is True: #check to see if email is already in the system + flash("Your email is already present in our system, remail") + elif not EMAIL_REGEX.match(request.form['remail']): #check to be sure there is an asterisk in email address + flash("Email addresses must contain at least 1 asterisk!", 'remail') + + elif len(request.form['rpassword']) == 0: + flash("Password must be entered", 'rpassword') + elif len(request.form['rpassword']) < 7: + flash("Password must be at least 8 characters long", 'rpassword') + elif len(request.form['rcpassword']) == 0: + flash("Confirm Password must be entered when registering", 'rcpassword') + elif request.form['rpassword'] != request.form['rcpassword']: + flash(" Confirm password and Password do not match", 'rpassword') + else: + print("Made it past all registration edits") + print("Request Form ", request.form) + + if '_flashes' in session.keys(): + print ("Errors found in login validation") + print (session.keys()) + return redirect("/") + else: + print ("No Errors found in login validation") + session['rfname'] = request.form['rfname'] + session['rlname'] = request.form['rlname'] + session['remail'] = request.form['remail'] + session['rpassword'] = request.form['rpassword'] + + return redirect("/reg_success") + + + +@app.route('/process_login', methods=['POST']) +def process_login(): + + print("Made it to /process_login") + + query = "SELECT ID, emailAddress, password FROM users WHERE emailAddress = %(sql_lemail)s;" + data = { "sql_lemail":request.form['lemail'] } + email_in_database = mysql.query_db(query, data) + + print("Email in database: ", email_in_database) + + print("Database read for login", email_in_database[0]['password']) + + # (result[0]['password'], request.form['password']) + + if len(request.form['lemail']) == 0: #check if email address was entered + flash("Please enter an email address", 'lemail') + elif email_in_database is False: + print("Email read was not found") + print(email_in_database) + flash("Your email address is not in our system", 'lemail') + elif not EMAIL_REGEX.match(request.form['lemail']): #check to be sure there is an asterisk in email address + flash("Email addresses must contain at least 1 @ symbol!", 'lemail') + elif len(request.form['lpassword']) == 0: + flash("Password must be entered", 'lpassword', ) + elif len(request.form['lpassword']) < 7: + flash("Password must be at least 7 characters long", 'lpassword') + print("Made it past all login edits") + print("Request Form ", request.form) + + bcrypt.check_password_hash(email_in_database[0]['password'], request.form['lpassword']) + + if '_flashes' in session.keys(): + print ("Errors found in login validation") + print (session.keys()) + return redirect("/") + else: + print ("No Errors found in login validation") + session['lemail'] = request.form['lemail'] + session['rfname'] = request.form['lpassword'] + return redirect("/login_success") + +@app.route('/process_noclick', methods=['POST']) +def process_noclick(): + + flash("No button was clicked", 'rfname') + + print("Made it to /process_noclick") + + print ("Neither button was clicked but the HTML form was returned.") + return redirect("/") + + +@app.route('/reg_success') +def reg_success(): + + print("Made it to reg_success") + + + pw_hash = bcrypt.generate_password_hash(session['rpassword']) + print(pw_hash) + + query = "INSERT INTO users (lastName, firstName, emailAddress, password, createdOn, updatedOn) VALUES (%(firstName)s, %(lastName)s, %(emailAddress)s, %(password)s, NOW(), NOW()) ;" + data = { "firstName":session['rfname'], "lastName":session['rlname'], "emailAddress":session['remail'], "password":pw_hash } + add_new_user = mysql.query_db(query, data) + + print("Made it to just after SQL insert in reg_success") + print(add_new_user) + + return redirect("/application") + +@app.route('/login_success') +def login_success(): + + print ("Made it to login_success") + print("Request Form again ", [session]) + + return redirect("/application") + +@app.route('/application') +def success(): + + return render_template('David_Savage_Displaying_Blocks_With_Sound.html') + +if __name__ == "__main__": + app.run(debug=True) + print("At the moment, we are not handling any routes on our server.") + + + + diff --git a/David Savage/email_validation/Input.html b/David Savage/email_validation/Input.html new file mode 100644 index 00000000..c0f2105d --- /dev/null +++ b/David Savage/email_validation/Input.html @@ -0,0 +1,30 @@ + + + + + + + + + Customers + + + +
+

Email Validation

+
+ Email Address: + {% with errors = get_flashed_messages(category_filter=["email"]) %} + {% if errors %} + {%- for msg in errors %} + {{ msg }} + {% endfor -%} + {% endif%} + {% endwith %} + +
+
+ + + diff --git a/David Savage/email_validation/Success.css b/David Savage/email_validation/Success.css new file mode 100644 index 00000000..a2493c49 --- /dev/null +++ b/David Savage/email_validation/Success.css @@ -0,0 +1,9 @@ +*{ + /*outline: 2px dotted black;*/ +} + +.header_paragraph{ +height: 30px; +width: 150px; +background-color: green; +} \ No newline at end of file diff --git a/David Savage/email_validation/Success.html b/David Savage/email_validation/Success.html new file mode 100644 index 00000000..216ee2cb --- /dev/null +++ b/David Savage/email_validation/Success.html @@ -0,0 +1,52 @@ + + + + + + + + + + Customers + + +
+

The email address you entered (___) is a valid email address! Thank You!

+

+

Email Addresses Entered

+ + {% for email in emails %} + + + + + + {% endfor %} +
Email Address: {{ email['emailAddress'] }} Date Last Updated: {{ email['updatedat'] }} +
+ +
+
+
+ + + diff --git a/David Savage/email_validation/mysqlconnection.py b/David Savage/email_validation/mysqlconnection.py new file mode 100644 index 00000000..8ea6661b --- /dev/null +++ b/David Savage/email_validation/mysqlconnection.py @@ -0,0 +1,43 @@ +# a cursor is the object we use to interact with the database +import pymysql.cursors +# Create a class that will give us an object that we can use to connect to a database +class MySQLConnection: + def __init__(self, db): + connection = pymysql.connect(host = 'localhost', + user = 'root', # change the user and password as needed + password = 'root', + db = db, + charset = 'utf8mb4', + cursorclass = pymysql.cursors.DictCursor, + autocommit = True) + # establish the connection to the database + self.connection = connection + # to query the database, we will use this method, which needs a query and possibly some data + def query_db(self, query, data=None): + with self.connection.cursor() as cursor: + try: + query = cursor.mogrify(query, data) + print('\nRunning Query:', query, '\n') + + executable = cursor.execute(query, data) + if query.lower().find("insert") >= 0: + # if the query is an insert, return the id of the last row, since that is the row we just added + self.connection.commit() + return cursor.lastrowid + elif query.lower().find("select") >= 0: + # if the query is a select, return everything that is fetched from the database + # the result will be a list of dictionaries + result = cursor.fetchall() + return result + else: + # if the query is not an insert or a select, such as an update or delete, commit the changes + # return nothing + self.connection.commit() + except Exception as e: + # in case the query fails + print("Something went wrong", e) + return False +# this connectToMySQL function creates an instance of MySQLConnection, which will be used by server.py +# connectToMySQL receives the database we're using and uses it to create an instance of MySQLConnection +def connectToMySQL(db): + return MySQLConnection(db) \ No newline at end of file diff --git a/David Savage/email_validation/mysqlserver.py b/David Savage/email_validation/mysqlserver.py new file mode 100644 index 00000000..ad842353 --- /dev/null +++ b/David Savage/email_validation/mysqlserver.py @@ -0,0 +1,154 @@ +from flask import Flask, render_template, request, redirect, session, flash +# import the function connectToMySQL from the file mysqlconnection.py +from mysqlconnection import connectToMySQL +from flask_bcrypt import Bcrypt +import re + +app = Flask(__name__) +app.secret_key = 'j5h)*ytg45##2*@ej' +# invoke the connectToMySQL function and pass it the name of the database we're using +# connectToMySQL returns an instance of MySQLConnection, which we will store in the variable 'mysql' +mysql = connectToMySQL('email_validataion') +# now, we may invoke the query_db method +bcrypt = Bcrypt(app) # we are creating an object called bcrypt, + # which is made by invoking the function Bcrypt with our app as an argument +# print("Here are all the Clients: ", mysql.query_db("SELECT * FROM clients;")) +# print("Here are all the Sites: ", mysql.query_db("SELECT * FROM sites;")) +# print("Here are all the Leads: ", mysql.query_db("SELECT * FROM leads;")) +EMAIL_REGEX = re.compile(r'^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9._-]+\.[a-zA-Z]+$') + + + +# this is the route that that will issue the original HTML and to which it will come back. When the form comes back it will redirect to /process. Process will edit the form and +# flash errors and then return to here to redisplay the form OR it will redirect to success. + +@app.route('/') +def index(): + return render_template('Input.html') + +# This is a route to use for validation. When the redirect comes here, check the email address. If it's bad then redirect back to the +# Original / route and that will issue the flash error messages on the original form. +# If it's good then render the success form. + +@app.route('/process', methods=['POST']) +def process(): + + print("Made it to process") + + print("Request Form ", request.form) + + query = "SELECT distinct emailAddress FROM emailaddress WHERE emailAddress = %(emailAddress)s;" + data = { "emailAddress" : request.form['eaddress'] } + possible_duplicates = mysql.query_db(query, data) + + print("Made it past SQL query") + print("Possible duplicate length", len(possible_duplicates) ) + + if len(request.form['eaddress']) < 1: + flash("Email address cannot be blank!", 'email') + elif not EMAIL_REGEX.match(request.form['eaddress']): + flash("Email addresses contain at least 1 asterisk!", 'email') + elif len(possible_duplicates) > 0: + flash("Duplicate email address!", 'email') + + print("made it past validation") + + if '_flashes' in session.keys(): + print ("Made it to return redirect /") + return redirect("/") + else: + print ("Made it to return redirect /success") + session['eaddress'] = request.form['eaddress'] + return redirect("/success") + + + +@app.route('/success') +def success(): + + print ("Just before insert") + print("Request Form again ", request.form) + + add_email = "INSERT INTO emailaddress (emailAddress,createdat,updatedat) VALUES (%(emailAddress)s, NOW(), NOW());" + data = { "emailAddress" : session['eaddress'] } + + mysql.query_db(add_email, data) + + print("Just after insert") + + + all_emails = mysql.query_db("SELECT * FROM emailaddress;") + return render_template('Success.html', emails = all_emails) + +# All the data has been edited. The email is not a duplicate. Insert this new email address into the database and then redirect to "/". Render_template to the new for that displays +# all the email addresses. + + # query = "SELECT distinct emailAddress FROM emailaddress WHERE emailAddress = 'davidsavagetx@gmail.com';" + # data = { "emailAddress" : request.form['eaddress'] } + # mysql.query_db(query, data) + + + + + + + +# @app.route('/change_Dates', methods=['POST']) + +# def create(): + + # print("***********************Made it to Create function") + # query = "INSERT INTO friends (first_name, last_name, occupation, created_at, updated_at) VALUES (%(fname)s, %(lname)s, %(occupation)s, NOW(), NOW());" + # print("After Query") + # data = { + # 'fname': request.form['fname'], + # 'lname': request.form['lname'], + # 'occupation': request.form['occupation'] + # } + # mysql.query_db(query, data) + # print("Query and data sent to SQL.") + # return redirect('/') + + +# @app.route('/createUser', methods=['POST']) +# def create(): +# # include some logic to validate user input before adding them to the database! +# # create the hash +# pw_hash = bcrypt.generate_password_hash(request.form['password']) +# print(pw_hash) +# # prints something like b'$2b$12$sqjyok5RQccl9S6eFLhEPuaRaJCcH3Esl2RWLm/cimMIEnhnLb7iC' +# # be sure you set up your database so it can store password hashes this long (60 characters) +# query = "INSERT INTO users (username, password) VALUES (%(username)s, %(password_hash)s);" +# # put the pw_hash in our data dictionary, NOT the password the user provided +# data = { "username" : request.form['username'], +# "password_hash" : pw_hash } +# mysql.query_db(query, data) +# # never render on a post, always redirect! +# return redirect("/") + + +# @app.route('/login', methods=['POST']) +# def login(): +# # see if the username provided exists in the database +# query = "SELECT * FROM users WHERE username = %(username)s;" +# data = { "username" : request.form["username"] } +# result = mysql.query_db(query, data) +# if result: +# # assuming we only have one user with this username, the user would be first in the list we get back +# # of course, for this approach, we should have some logic to prevent duplicates of usernames when we create users +# # use bcrypt's check_password_hash method, passing the hash from our database and the password from the form +# if bcrypt.check_password_hash(result[0]['password'], request.form['password']): +# # if we get True after checking the password, we may put the user id in session +# session['userid'] = result[0]['id'] +# # never render on a post, always redirect! +# return redirect('/success') +# # if we didn't find anything in the database by searching by username or if the passwords don't match, +# # flash an error message and redirect back to a safe route +# flash("You could not be logged in") +# return redirect("/") + + + +if __name__ == "__main__": + app.run(debug=True) + print("At the moment, we are not handling any routes on our server.") \ No newline at end of file diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/admin/migrations/__pycache__/0002_logentry_remove_auto_add.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/admin/migrations/__pycache__/0002_logentry_remove_auto_add.cpython-37.pyc deleted file mode 100644 index a7b59e05..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/admin/migrations/__pycache__/0002_logentry_remove_auto_add.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/management/commands/__pycache__/createsuperuser.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/management/commands/__pycache__/createsuperuser.cpython-37.pyc deleted file mode 100644 index 54196a63..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/management/commands/__pycache__/createsuperuser.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0002_alter_permission_name_max_length.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0002_alter_permission_name_max_length.cpython-37.pyc deleted file mode 100644 index 0c1c6ae5..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0002_alter_permission_name_max_length.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0003_alter_user_email_max_length.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0003_alter_user_email_max_length.cpython-37.pyc deleted file mode 100644 index d8d22c9e..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0003_alter_user_email_max_length.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0004_alter_user_username_opts.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0004_alter_user_username_opts.cpython-37.pyc deleted file mode 100644 index 11adef60..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0004_alter_user_username_opts.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0005_alter_user_last_login_null.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0005_alter_user_last_login_null.cpython-37.pyc deleted file mode 100644 index 2d79fd96..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0005_alter_user_last_login_null.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0006_require_contenttypes_0002.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0006_require_contenttypes_0002.cpython-37.pyc deleted file mode 100644 index e303416b..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0006_require_contenttypes_0002.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0007_alter_validators_add_error_messages.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0007_alter_validators_add_error_messages.cpython-37.pyc deleted file mode 100644 index d3eefc9d..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0007_alter_validators_add_error_messages.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0008_alter_user_username_max_length.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0008_alter_user_username_max_length.cpython-37.pyc deleted file mode 100644 index fd949d58..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0008_alter_user_username_max_length.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/contenttypes/migrations/__pycache__/0002_remove_content_type_name.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/contenttypes/migrations/__pycache__/0002_remove_content_type_name.cpython-37.pyc deleted file mode 100644 index fd90365f..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/contenttypes/migrations/__pycache__/0002_remove_content_type_name.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/gis/db/backends/spatialite/__pycache__/introspection.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/gis/db/backends/spatialite/__pycache__/introspection.cpython-37.pyc deleted file mode 100644 index c5f0767e..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/gis/db/backends/spatialite/__pycache__/introspection.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/sessions/management/commands/__pycache__/clearsessions.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/sessions/management/commands/__pycache__/clearsessions.cpython-37.pyc deleted file mode 100644 index 4aceb531..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/sessions/management/commands/__pycache__/clearsessions.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/sitemaps/management/commands/__pycache__/ping_google.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/sitemaps/management/commands/__pycache__/ping_google.cpython-37.pyc deleted file mode 100644 index f24d02cc..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/sitemaps/management/commands/__pycache__/ping_google.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/sites/migrations/__pycache__/0002_alter_domain_unique.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/sites/migrations/__pycache__/0002_alter_domain_unique.cpython-37.pyc deleted file mode 100644 index 8df4e6d8..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/sites/migrations/__pycache__/0002_alter_domain_unique.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/__init__.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 7a93eeab..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/collectstatic.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/collectstatic.cpython-37.pyc deleted file mode 100644 index 15a63c1f..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/collectstatic.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/findstatic.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/findstatic.cpython-37.pyc deleted file mode 100644 index 7013b02f..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/findstatic.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/runserver.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/runserver.cpython-37.pyc deleted file mode 100644 index bed735a5..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/runserver.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index d6190081..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-37.pyc deleted file mode 100644 index c4011fc7..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django1.10Py3Env/lib/python3.7/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/admin/migrations/__pycache__/0002_logentry_remove_auto_add.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/admin/migrations/__pycache__/0002_logentry_remove_auto_add.cpython-37.pyc deleted file mode 100644 index e5ad38c7..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/admin/migrations/__pycache__/0002_logentry_remove_auto_add.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0002_alter_permission_name_max_length.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0002_alter_permission_name_max_length.cpython-37.pyc deleted file mode 100644 index f10cd900..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0002_alter_permission_name_max_length.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0003_alter_user_email_max_length.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0003_alter_user_email_max_length.cpython-37.pyc deleted file mode 100644 index 48b2cebe..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0003_alter_user_email_max_length.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0004_alter_user_username_opts.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0004_alter_user_username_opts.cpython-37.pyc deleted file mode 100644 index 58e0dc95..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0004_alter_user_username_opts.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0005_alter_user_last_login_null.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0005_alter_user_last_login_null.cpython-37.pyc deleted file mode 100644 index 86675fb4..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0005_alter_user_last_login_null.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0006_require_contenttypes_0002.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0006_require_contenttypes_0002.cpython-37.pyc deleted file mode 100644 index cecdf5de..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0006_require_contenttypes_0002.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0007_alter_validators_add_error_messages.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0007_alter_validators_add_error_messages.cpython-37.pyc deleted file mode 100644 index f6d61166..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0007_alter_validators_add_error_messages.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0008_alter_user_username_max_length.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0008_alter_user_username_max_length.cpython-37.pyc deleted file mode 100644 index f16969ad..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0008_alter_user_username_max_length.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0009_alter_user_last_name_max_length.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0009_alter_user_last_name_max_length.cpython-37.pyc deleted file mode 100644 index a9bd57a6..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/auth/migrations/__pycache__/0009_alter_user_last_name_max_length.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/contenttypes/management/commands/__pycache__/__init__.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/contenttypes/management/commands/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index b219f053..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/contenttypes/management/commands/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/contenttypes/management/commands/__pycache__/remove_stale_contenttypes.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/contenttypes/management/commands/__pycache__/remove_stale_contenttypes.cpython-37.pyc deleted file mode 100644 index c7f965bc..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/contenttypes/management/commands/__pycache__/remove_stale_contenttypes.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/contenttypes/migrations/__pycache__/0002_remove_content_type_name.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/contenttypes/migrations/__pycache__/0002_remove_content_type_name.cpython-37.pyc deleted file mode 100644 index 2081eb1a..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/contenttypes/migrations/__pycache__/0002_remove_content_type_name.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/sessions/management/commands/__pycache__/clearsessions.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/sessions/management/commands/__pycache__/clearsessions.cpython-37.pyc deleted file mode 100644 index 75651f0c..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/sessions/management/commands/__pycache__/clearsessions.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/sites/migrations/__pycache__/0002_alter_domain_unique.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/sites/migrations/__pycache__/0002_alter_domain_unique.cpython-37.pyc deleted file mode 100644 index e30582d2..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/sites/migrations/__pycache__/0002_alter_domain_unique.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/collectstatic.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/collectstatic.cpython-37.pyc deleted file mode 100644 index fed88268..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/collectstatic.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/findstatic.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/findstatic.cpython-37.pyc deleted file mode 100644 index a11561d1..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/findstatic.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/runserver.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/runserver.cpython-37.pyc deleted file mode 100644 index 930430eb..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/__pycache__/runserver.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 4f4442f0..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-37.pyc b/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-37.pyc deleted file mode 100644 index 7f1f2a33..00000000 Binary files a/prajesh_gohel/Python/myEnvironments/django2.0Py3Env/lib/python3.7/site-packages/pip/_vendor/urllib3/packages/ssl_match_hostname/__pycache__/_implementation.cpython-37.pyc and /dev/null differ