-
-
-
\ No newline at end of file
From 08b538ddd90a3533b460a63e8ae9fe3dca19e58c Mon Sep 17 00:00:00 2001
From: Soumitra
Date: Thu, 11 Jan 2024 13:17:23 +0530
Subject: [PATCH 12/49] Update readme.rst
---
read-lines-from-last/readme.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/read-lines-from-last/readme.rst b/read-lines-from-last/readme.rst
index 04757ea38..309bf4985 100644
--- a/read-lines-from-last/readme.rst
+++ b/read-lines-from-last/readme.rst
@@ -1 +1 @@
-You can read tutorial https://www.roytuts.com/read-last-n-lines-from-file-using-python/
+Please follow the tutorial https://roytuts.com/read-last-n-lines-from-file-using-python/
From 33c8d2636918080746feff9f41813536507f1c77 Mon Sep 17 00:00:00 2001
From: Soumitra
Date: Thu, 11 Jan 2024 13:18:06 +0530
Subject: [PATCH 13/49] Create SampleTextFile_10kb.txt
---
read-lines-from-last/SampleTextFile_10kb.txt | 27 ++++++++++++++++++++
1 file changed, 27 insertions(+)
create mode 100644 read-lines-from-last/SampleTextFile_10kb.txt
diff --git a/read-lines-from-last/SampleTextFile_10kb.txt b/read-lines-from-last/SampleTextFile_10kb.txt
new file mode 100644
index 000000000..e0f98f53f
--- /dev/null
+++ b/read-lines-from-last/SampleTextFile_10kb.txt
@@ -0,0 +1,27 @@
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus condimentum sagittis lacus, laoreet luctus ligula laoreet ut. Vestibulum ullamcorper accumsan velit vel vehicula. Proin tempor lacus arcu. Nunc at elit condimentum, semper nisi et, condimentum mi. In venenatis blandit nibh at sollicitudin. Vestibulum dapibus mauris at orci maximus pellentesque. Nullam id elementum ipsum. Suspendisse cursus lobortis viverra. Proin et erat at mauris tincidunt porttitor vitae ac dui.
+
+Donec vulputate lorem tortor, nec fermentum nibh bibendum vel. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent dictum luctus massa, non euismod lacus. Pellentesque condimentum dolor est, ut dapibus lectus luctus ac. Ut sagittis commodo arcu. Integer nisi nulla, facilisis sit amet nulla quis, eleifend suscipit purus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aliquam euismod ultrices lorem, sit amet imperdiet est tincidunt vel. Phasellus dictum justo sit amet ligula varius aliquet auctor et metus. Fusce vitae tortor et nisi pulvinar vestibulum eget in risus. Donec ante ex, placerat a lorem eget, ultricies bibendum purus. Nam sit amet neque non ante laoreet rutrum. Nullam aliquet commodo urna, sed ullamcorper odio feugiat id. Mauris nisi sapien, porttitor in condimentum nec, venenatis eu urna. Pellentesque feugiat diam est, at rhoncus orci porttitor non.
+
+Nulla luctus sem sit amet nisi consequat, id ornare ipsum dignissim. Sed elementum elit nibh, eu condimentum orci viverra quis. Aenean suscipit vitae felis non suscipit. Suspendisse pharetra turpis non eros semper dictum. Etiam tincidunt venenatis venenatis. Praesent eget gravida lorem, ut congue diam. Etiam facilisis elit at porttitor egestas. Praesent consequat, velit non vulputate convallis, ligula diam sagittis urna, in venenatis nisi justo ut mauris. Vestibulum posuere sollicitudin mi, et vulputate nisl fringilla non. Nulla ornare pretium velit a euismod. Nunc sagittis venenatis vestibulum. Nunc sodales libero a est ornare ultricies. Sed sed leo sed orci pellentesque ultrices. Mauris sollicitudin, sem quis placerat ornare, velit arcu convallis ligula, pretium finibus nisl sapien vel sem. Vivamus sit amet tortor id lorem consequat hendrerit. Nullam at dui risus.
+
+Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed feugiat semper velit consequat facilisis. Etiam facilisis justo non iaculis dictum. Fusce turpis neque, pharetra ut odio eu, hendrerit rhoncus lacus. Nunc orci felis, imperdiet vel interdum quis, porta eu ipsum. Pellentesque dictum sem lacinia, auctor dui in, malesuada nunc. Maecenas sit amet mollis eros. Proin fringilla viverra ligula, sollicitudin viverra ante sollicitudin congue. Donec mollis felis eu libero malesuada, et lacinia risus interdum.
+
+Etiam vitae accumsan augue. Ut urna orci, malesuada ut nisi a, condimentum gravida magna. Nulla bibendum ex in vulputate sagittis. Nulla facilisi. Nullam faucibus et metus ac consequat. Quisque tempor eros velit, id mattis nibh aliquet a. Aenean tempor elit ut finibus auctor. Sed at imperdiet mauris. Vestibulum pharetra non lacus sed pulvinar. Sed pellentesque magna a eros volutpat ullamcorper. In hac habitasse platea dictumst. Donec ipsum mi, feugiat in eros sed, varius lacinia turpis. Donec vulputate tincidunt dui ac laoreet. Sed in eros dui. Pellentesque placerat tristique ligula eu finibus. Proin nec faucibus felis, eu commodo ipsum.
+
+Integer eu hendrerit diam, sed consectetur nunc. Aliquam a sem vitae leo fermentum faucibus quis at sem. Etiam blandit, quam quis fermentum varius, ante urna ultricies lectus, vel pellentesque ligula arcu nec elit. Donec placerat ante in enim scelerisque pretium. Donec et rhoncus erat. Aenean tempor nisi vitae augue tincidunt luctus. Nam condimentum dictum ante, et laoreet neque pellentesque id. Curabitur consectetur cursus neque aliquam porta. Ut interdum nunc nec nibh vestibulum, in sagittis metus facilisis. Pellentesque feugiat condimentum metus. Etiam venenatis quam at ante rhoncus vestibulum. Maecenas suscipit congue pellentesque. Vestibulum suscipit scelerisque fermentum. Nulla iaculis risus ac vulputate porttitor.
+
+Mauris nec metus vel dolor blandit faucibus et vel magna. Ut tincidunt ipsum non nunc dapibus, sed blandit mi condimentum. Quisque pharetra interdum quam nec feugiat. Sed pellentesque nulla et turpis blandit interdum. Curabitur at metus vitae augue elementum viverra. Sed mattis lorem non enim fermentum finibus. Sed at dui in magna dignissim accumsan. Proin tincidunt ultricies cursus. Maecenas tincidunt magna at urna faucibus lacinia.
+
+Quisque venenatis justo sit amet tortor condimentum, nec tincidunt tellus viverra. Morbi risus ipsum, consequat convallis malesuada non, fermentum non velit. Nulla facilisis orci eget ligula mattis fermentum. Aliquam vel velit ultricies, sollicitudin nibh eu, congue velit. Donec nulla lorem, euismod id cursus at, sollicitudin et arcu. Proin vitae tincidunt ipsum. Vivamus elementum eleifend justo, placerat interdum nulla rutrum id.
+
+Phasellus fringilla luctus magna, a finibus justo dapibus a. Nam risus felis, rhoncus eget diam sit amet, congue facilisis nibh. Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent consequat euismod diam, eget volutpat magna convallis at. Mauris placerat pellentesque imperdiet. Nulla porta scelerisque enim, et scelerisque neque bibendum in. Proin eget turpis nisi. Suspendisse ut est a erat egestas eleifend at euismod arcu. Donec aliquet, nisi sed faucibus condimentum, nisi metus dictum eros, nec dignissim justo odio id nulla. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas sollicitudin, justo id elementum eleifend, justo neque aliquet nibh, finibus malesuada metus erat eget neque. Suspendisse nec auctor orci. Aenean et vestibulum nulla. Nullam hendrerit augue tristique, commodo metus id, sodales lorem. Etiam feugiat dui est, vitae auctor risus convallis non.
+
+Maecenas turpis enim, consectetur eget lectus eu, hendrerit posuere lacus. Praesent efficitur, felis eget dapibus consectetur, nisi massa dignissim enim, nec semper dolor est eu urna. Nullam ut sodales lorem. Aliquam dapibus faucibus diam. Vestibulum vel magna et dolor gravida imperdiet ut sit amet sem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur elementum metus tincidunt nulla euismod ultricies. Duis elementum nec neque in porttitor. Nulla sagittis lorem elit, et consectetur ante laoreet eu. Maecenas nulla tellus, scelerisque ac erat sed, fermentum dapibus metus. Donec tincidunt fermentum molestie.
+
+Sed consequat mi at maximus faucibus. Pellentesque aliquet tincidunt sapien vel auctor. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Praesent accumsan nunc eget leo aliquam, facilisis hendrerit turpis egestas. Morbi in ultricies mauris, a eleifend turpis. Quisque fringilla massa iaculis risus ultrices, sit amet tincidunt dui varius. Quisque maximus porta tristique. Proin tincidunt, turpis ut tempor pretium, lectus ipsum ullamcorper leo, ac tincidunt felis dui non leo. Aenean porta augue ligula, non consequat ipsum aliquet et. Suspendisse ut suscipit ex. Pellentesque vitae lacinia arcu. Curabitur eget tincidunt nulla, non bibendum metus. Nullam mi ipsum, eleifend vitae tortor pulvinar, facilisis sollicitudin ipsum.
+
+Vestibulum molestie risus lorem, at feugiat lorem congue sed. Phasellus ullamcorper laoreet enim, nec aliquam turpis scelerisque et. Etiam dictum metus in elit aliquam dapibus. Vivamus vel lectus velit. Nam sed purus luctus, commodo dui quis, malesuada dui. Nulla porttitor aliquet elit sit amet viverra. Proin tempor nulla urna, non aliquet metus maximus quis. Aliquam ac lectus nec mi aliquam sagittis. Quisque venenatis quam eget nisl tempor, egestas rutrum eros eleifend. Nullam venenatis commodo velit, non tempor mauris fermentum ut. In a metus quis erat cursus sagittis. Donec congue nisl in viverra egestas.
+
+Vestibulum facilisis ligula magna, eu ornare lectus varius et. Mauris facilisis faucibus quam, quis mollis eros convallis non. Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent sit amet rutrum erat. Suspendisse potenti. Donec lorem mi, sagittis a fringilla sit amet, sagittis bibendum mauris. In in diam et lorem rutrum eleifend a et felis. Sed ac magna quis enim faucibus dictum. Suspendisse blandit enim eu ex laoreet gravida.
+
+Suspendisse sed semper felis. Etiam mattis magna mi, suscipit ullamcorper tellus euismod sed. Aenean congue scelerisque ligula id sodales. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nunc sem lectus, gravida ac dui non, pharetra posuere leo. Maecenas lacus libero, facilisis et elit vitae, commodo facilisis sem. Vivamus id nisl nulla. Integer at maximus dui. Ut a tincidunt lorem. Vivamus vitae ligula vel lacus cursus condimentum. Phasellus quis mauris lobortis, finibus lorem in, vulputate ex. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed faucibus aliquam metus, quis varius elit porttitor id. Vivamus dignissim sollicitudin scelerisque. Morbi tincidunt, dolor quis vehicula consequat, dui diam condimentum nunc, vitae scelerisque odio libero nec ligula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
From c7d4ec53c5d71a6f2eb9286fd3dacea3cbb40f4c Mon Sep 17 00:00:00 2001
From: Soumitra
Date: Thu, 11 Jan 2024 13:55:07 +0530
Subject: [PATCH 14/49] Delete python_flask_multiple_files_upload directory
Move to repo https://github.com/roytuts/flask/tree/master/flask-multiple-files-upload
---
python_flask_multiple_files_upload/app.py | 8 -----
python_flask_multiple_files_upload/main.py | 33 -------------------
python_flask_multiple_files_upload/readme.rst | 1 -
.../templates/upload.html | 24 --------------
4 files changed, 66 deletions(-)
delete mode 100644 python_flask_multiple_files_upload/app.py
delete mode 100644 python_flask_multiple_files_upload/main.py
delete mode 100644 python_flask_multiple_files_upload/readme.rst
delete mode 100644 python_flask_multiple_files_upload/templates/upload.html
diff --git a/python_flask_multiple_files_upload/app.py b/python_flask_multiple_files_upload/app.py
deleted file mode 100644
index d58a47f40..000000000
--- a/python_flask_multiple_files_upload/app.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from flask import Flask
-
-UPLOAD_FOLDER = 'D:/uploads'
-
-app = Flask(__name__)
-app.secret_key = "secret key"
-app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
-app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024
diff --git a/python_flask_multiple_files_upload/main.py b/python_flask_multiple_files_upload/main.py
deleted file mode 100644
index cff123f81..000000000
--- a/python_flask_multiple_files_upload/main.py
+++ /dev/null
@@ -1,33 +0,0 @@
-import os
-#import magic
-import urllib.request
-from app import app
-from flask import Flask, flash, request, redirect, render_template
-from werkzeug.utils import secure_filename
-
-ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])
-
-def allowed_file(filename):
- return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
-
-@app.route('/')
-def upload_form():
- return render_template('upload.html')
-
-@app.route('/', methods=['POST'])
-def upload_file():
- if request.method == 'POST':
- # check if the post request has the files part
- if 'files[]' not in request.files:
- flash('No file part')
- return redirect(request.url)
- files = request.files.getlist('files[]')
- for file in files:
- if file and allowed_file(file.filename):
- filename = secure_filename(file.filename)
- file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
- flash('File(s) successfully uploaded')
- return redirect('/')
-
-if __name__ == "__main__":
- app.run()
\ No newline at end of file
diff --git a/python_flask_multiple_files_upload/readme.rst b/python_flask_multiple_files_upload/readme.rst
deleted file mode 100644
index 174cf9c7e..000000000
--- a/python_flask_multiple_files_upload/readme.rst
+++ /dev/null
@@ -1 +0,0 @@
-You can go through the tutorial https://www.roytuts.com/python-flask-multiple-files-upload-example/
diff --git a/python_flask_multiple_files_upload/templates/upload.html b/python_flask_multiple_files_upload/templates/upload.html
deleted file mode 100644
index 6203d5cf7..000000000
--- a/python_flask_multiple_files_upload/templates/upload.html
+++ /dev/null
@@ -1,24 +0,0 @@
-
-Codestin Search App
-
Select file(s) to upload
-
- {% with messages = get_flashed_messages() %}
- {% if messages %}
-
- {% for message in messages %}
-
{{ message }}
- {% endfor %}
-
- {% endif %}
- {% endwith %}
-
-
\ No newline at end of file
From 4b664589321f5d2ffd2b473cf8c5d798ee1baa54 Mon Sep 17 00:00:00 2001
From: Soumitra
Date: Thu, 18 Jan 2024 14:51:27 +0530
Subject: [PATCH 15/49] Delete python-flask-flash directory
Moved to repo https://github.com/roytuts/flask/tree/master/flask-flash
---
python-flask-flash/main.py | 16 ----------------
python-flask-flash/readme.rst | 1 -
2 files changed, 17 deletions(-)
delete mode 100644 python-flask-flash/main.py
delete mode 100644 python-flask-flash/readme.rst
diff --git a/python-flask-flash/main.py b/python-flask-flash/main.py
deleted file mode 100644
index c758ec854..000000000
--- a/python-flask-flash/main.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from flask import Flask, flash, render_template
-
-app = Flask(__name__)
-app.secret_key = "secret key"
-
-@app.route('/')
-def app_session():
- #flash('This is a flash message')
- #flash('This is a flash error message', 'error')
- #flash('This is a flash success message', 'success')
-
- return render_template('template.html')
-
-
-if __name__ == "__main__":
- app.run()
\ No newline at end of file
diff --git a/python-flask-flash/readme.rst b/python-flask-flash/readme.rst
deleted file mode 100644
index bdbc4a817..000000000
--- a/python-flask-flash/readme.rst
+++ /dev/null
@@ -1 +0,0 @@
-You can go through the tutorial https://www.roytuts.com/flash-message-management-in-python-flask
From b2f44e5dd5ced19f1bc8d078bf53b70400632ee8 Mon Sep 17 00:00:00 2001
From: Soumitra
Date: Mon, 12 Feb 2024 21:56:57 +0530
Subject: [PATCH 16/49] Delete
python-flask-mysql-ajax-username-availability-check directory
moved to repo https://github.com/roytuts/flask/tree/master/python-flask-mysql-ajax-username-availability-check
---
.../app.py | 3 -
.../db_config.py | 11 ----
.../main.py | 43 --------------
.../readme.rst | 1 -
.../templates/username.html | 56 -------------------
5 files changed, 114 deletions(-)
delete mode 100644 python-flask-mysql-ajax-username-availability-check/app.py
delete mode 100644 python-flask-mysql-ajax-username-availability-check/db_config.py
delete mode 100644 python-flask-mysql-ajax-username-availability-check/main.py
delete mode 100644 python-flask-mysql-ajax-username-availability-check/readme.rst
delete mode 100644 python-flask-mysql-ajax-username-availability-check/templates/username.html
diff --git a/python-flask-mysql-ajax-username-availability-check/app.py b/python-flask-mysql-ajax-username-availability-check/app.py
deleted file mode 100644
index acd3dac9a..000000000
--- a/python-flask-mysql-ajax-username-availability-check/app.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from flask import Flask
-
-app = Flask(__name__)
\ No newline at end of file
diff --git a/python-flask-mysql-ajax-username-availability-check/db_config.py b/python-flask-mysql-ajax-username-availability-check/db_config.py
deleted file mode 100644
index 68c6468a1..000000000
--- a/python-flask-mysql-ajax-username-availability-check/db_config.py
+++ /dev/null
@@ -1,11 +0,0 @@
-from app import app
-from flaskext.mysql import MySQL
-
-mysql = MySQL()
-
-# MySQL configurations
-app.config['MYSQL_DATABASE_USER'] = 'root'
-app.config['MYSQL_DATABASE_PASSWORD'] = 'root'
-app.config['MYSQL_DATABASE_DB'] = 'roytuts'
-app.config['MYSQL_DATABASE_HOST'] = 'localhost'
-mysql.init_app(app)
\ No newline at end of file
diff --git a/python-flask-mysql-ajax-username-availability-check/main.py b/python-flask-mysql-ajax-username-availability-check/main.py
deleted file mode 100644
index 786faf69f..000000000
--- a/python-flask-mysql-ajax-username-availability-check/main.py
+++ /dev/null
@@ -1,43 +0,0 @@
-import pymysql
-from app import app
-from db_config import mysql
-from flask import jsonify, request, render_template
-
-@app.route('/user_check', methods=['POST'])
-def username_check():
- conn = None
- cursor = None
- try:
- username = request.form['username']
-
- # validate the received values
- if username and request.method == 'POST':
- conn = mysql.connect()
- cursor = conn.cursor(pymysql.cursors.DictCursor)
- cursor.execute("SELECT * FROM user WHERE login_username=%s", username)
- row = cursor.fetchone()
-
- if row:
- resp = jsonify('Username unavailable')
- resp.status_code = 200
- return resp
- else:
- resp = jsonify('Username available')
- resp.status_code = 200
- return resp
- else:
- resp = jsonify('Username is required field.')
- resp.status_code = 200
- return resp
- except Exception as e:
- print(e)
- finally:
- cursor.close()
- conn.close()
-
-@app.route('/')
-def home():
- return render_template('username.html')
-
-if __name__ == "__main__":
- app.run()
\ No newline at end of file
diff --git a/python-flask-mysql-ajax-username-availability-check/readme.rst b/python-flask-mysql-ajax-username-availability-check/readme.rst
deleted file mode 100644
index c5dd7df89..000000000
--- a/python-flask-mysql-ajax-username-availability-check/readme.rst
+++ /dev/null
@@ -1 +0,0 @@
-You can go through the tutorial https://www.roytuts.com/python-flask-username-availability-check-with-mysql-ajax/
diff --git a/python-flask-mysql-ajax-username-availability-check/templates/username.html b/python-flask-mysql-ajax-username-availability-check/templates/username.html
deleted file mode 100644
index d46da158a..000000000
--- a/python-flask-mysql-ajax-username-availability-check/templates/username.html
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
- Codestin Search App
-
-
-
-
-
-
-
Python Flask, AJAX, MySQL - username availability check
-
-
-
-
-
-
-
-
From 349bf7edce9684763dece469240b2a6d114647d5 Mon Sep 17 00:00:00 2001
From: Soumitra
Date: Tue, 13 Feb 2024 23:03:49 +0530
Subject: [PATCH 17/49] Delete
python-flask-mysql-jquery-ajax-multi-step-registration directory
Moved to repo https://github.com/roytuts/flask/tree/master/python-flask-mysql-jquery-ajax-multi-step-registration
---
.../app.py | 4 -
.../db_config.py | 11 -
.../main.py | 49 ----
.../readme.rst | 1 -
.../templates/multi-step-registration.html | 253 ------------------
5 files changed, 318 deletions(-)
delete mode 100644 python-flask-mysql-jquery-ajax-multi-step-registration/app.py
delete mode 100644 python-flask-mysql-jquery-ajax-multi-step-registration/db_config.py
delete mode 100644 python-flask-mysql-jquery-ajax-multi-step-registration/main.py
delete mode 100644 python-flask-mysql-jquery-ajax-multi-step-registration/readme.rst
delete mode 100644 python-flask-mysql-jquery-ajax-multi-step-registration/templates/multi-step-registration.html
diff --git a/python-flask-mysql-jquery-ajax-multi-step-registration/app.py b/python-flask-mysql-jquery-ajax-multi-step-registration/app.py
deleted file mode 100644
index 5e65b47b6..000000000
--- a/python-flask-mysql-jquery-ajax-multi-step-registration/app.py
+++ /dev/null
@@ -1,4 +0,0 @@
-from flask import Flask
-
-app = Flask(__name__)
-app.secret_key = "secret key"
\ No newline at end of file
diff --git a/python-flask-mysql-jquery-ajax-multi-step-registration/db_config.py b/python-flask-mysql-jquery-ajax-multi-step-registration/db_config.py
deleted file mode 100644
index 68c6468a1..000000000
--- a/python-flask-mysql-jquery-ajax-multi-step-registration/db_config.py
+++ /dev/null
@@ -1,11 +0,0 @@
-from app import app
-from flaskext.mysql import MySQL
-
-mysql = MySQL()
-
-# MySQL configurations
-app.config['MYSQL_DATABASE_USER'] = 'root'
-app.config['MYSQL_DATABASE_PASSWORD'] = 'root'
-app.config['MYSQL_DATABASE_DB'] = 'roytuts'
-app.config['MYSQL_DATABASE_HOST'] = 'localhost'
-mysql.init_app(app)
\ No newline at end of file
diff --git a/python-flask-mysql-jquery-ajax-multi-step-registration/main.py b/python-flask-mysql-jquery-ajax-multi-step-registration/main.py
deleted file mode 100644
index df09f7e86..000000000
--- a/python-flask-mysql-jquery-ajax-multi-step-registration/main.py
+++ /dev/null
@@ -1,49 +0,0 @@
-import pymysql
-from app import app
-from db_config import mysql
-from flask import flash, render_template, request, redirect, url_for
-from werkzeug import generate_password_hash, check_password_hash
-
-@app.route('/register', methods=['POST'])
-def save_user_info():
- cursor = None
- try:
- name = request.form['name']
- dob = request.form['dob']
- gender = request.form['gender']
- password = request.form['password']
- phone = request.form['phone']
- email = request.form['email']
- address = request.form['address']
-
- # validate the received values
- if name and dob and gender and password and phone and email and address and request.method == 'POST':
-
- #do not save password as a plain text
- _hashed_password = generate_password_hash(password)
-
- # save user information
- sql = "INSERT INTO user(name, password, email, phone, gender, dob, address) VALUES(%s, %s, %s, %s, %s, %s, %s)"
- data = (name, _hashed_password, email, phone, gender, dob, address)
- conn = mysql.connect()
- cursor = conn.cursor()
- cursor.execute(sql, data)
- conn.commit()
-
- flash('You registered successfully!')
-
- return redirect(url_for('.home'))
- else:
- return 'Error while saving user information'
- except Exception as e:
- print(e)
- finally:
- cursor.close()
- conn.close()
-
-@app.route('/')
-def home():
- return render_template('multi-step-registration.html')
-
-if __name__ == "__main__":
- app.run()
\ No newline at end of file
diff --git a/python-flask-mysql-jquery-ajax-multi-step-registration/readme.rst b/python-flask-mysql-jquery-ajax-multi-step-registration/readme.rst
deleted file mode 100644
index d6506640d..000000000
--- a/python-flask-mysql-jquery-ajax-multi-step-registration/readme.rst
+++ /dev/null
@@ -1 +0,0 @@
-You can go through the tutorial https://www.roytuts.com/python-flask-multi-step-registration-form-with-mysql-jquery/
diff --git a/python-flask-mysql-jquery-ajax-multi-step-registration/templates/multi-step-registration.html b/python-flask-mysql-jquery-ajax-multi-step-registration/templates/multi-step-registration.html
deleted file mode 100644
index 357416030..000000000
--- a/python-flask-mysql-jquery-ajax-multi-step-registration/templates/multi-step-registration.html
+++ /dev/null
@@ -1,253 +0,0 @@
-
-
- Codestin Search App
-
-
-
-
-
-
-
-
-
-
Personal Detail
-
Password
-
Contact
-
-
-
- {% with messages = get_flashed_messages() %}
- {% if messages %}
-
- {% for message in messages %}
-
{{ message }}
- {% endfor %}
-
- {% endif %}
- {% endwith %}
-
-
-
-
-
-
-
From 37f74a2eb4df961b5c1dc4976cfeb928b77c5e70 Mon Sep 17 00:00:00 2001
From: Soumitra
Date: Thu, 18 Jul 2024 17:19:43 +0530
Subject: [PATCH 18/49] Update readme.rst
---
python-email-html/readme.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/python-email-html/readme.rst b/python-email-html/readme.rst
index a511e3e83..b3a8275e4 100644
--- a/python-email-html/readme.rst
+++ b/python-email-html/readme.rst
@@ -1 +1 @@
-You can go through the tutorial https://www.roytuts.com/how-to-send-an-html-email-using-python/
+Please follow the tutorial https://roytuts.com/how-to-send-an-html-email-using-python/
From 719d6734d6846b8dc8420ae4f69e0b3c8c43f088 Mon Sep 17 00:00:00 2001
From: Soumitra
Date: Fri, 19 Jul 2024 15:03:25 +0530
Subject: [PATCH 19/49] Update readme.rst
---
python-email-text/readme.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/python-email-text/readme.rst b/python-email-text/readme.rst
index a41d94b03..70eb46241 100644
--- a/python-email-text/readme.rst
+++ b/python-email-text/readme.rst
@@ -1 +1 @@
-You can read tutorial at https://www.roytuts.com/how-to-send-a-simple-email-using-python/
\ No newline at end of file
+Please follow the tutorial https://roytuts.com/how-to-send-a-simple-email-using-python/
From 2cae98487bd36ca7b3ccd624f629e405fc4e0b0a Mon Sep 17 00:00:00 2001
From: Soumitra
Date: Fri, 19 Jul 2024 15:05:25 +0530
Subject: [PATCH 20/49] Update html_email.py
---
python-email-html/html_email.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/python-email-html/html_email.py b/python-email-html/html_email.py
index 468424bd4..9c628ac75 100644
--- a/python-email-html/html_email.py
+++ b/python-email-html/html_email.py
@@ -12,7 +12,7 @@