The email address you entered (___) is a valid email address! Thank You!
+
+
Email Addresses Entered
+
+ {% for email in emails %}
+
+
Email Address: {{ email['emailAddress'] }}
+
Date Last Updated: {{ email['updatedat'] }}
+
+
+
+
+ {% endfor %}
+
+
+
+
+
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
+
+
+
+
The email address you entered (___) is a valid email address! Thank You!
+
+
Email Addresses Entered
+
+ {% for email in emails %}
+
+
Email Address: {{ email['emailAddress'] }}
+
Date Last Updated: {{ email['updatedat'] }}
+
+
+
+
+ {% endfor %}
+
+
+
+
+
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