-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
63 lines (54 loc) · 2 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from flask import Flask, request, redirect, render_template
import cgi
import os
import re
app = Flask(__name__)
app.config['DEBUG'] = True
@app.route("/")
def index():
return render_template('index.html', title = "Sign Up")
@app.route("/signup", methods=['POST'])
def signup():
username = request.form["username"]
password = request.form["password"]
verify = request.form["verify"]
email = request.form["email"]
username_error = ""
password_error = ""
verify_error = ""
email_error = ""
if username == "": # Validate Username
username_error = "Please enter a valid username."
elif len(username) <= 3 or len(username) > 20:
username_error = "Username must be between 3 and 20 characters long."
username = ""
elif " " in username:
username_error = "Your username cannot contain any spaces."
username = ""
# Validate Password
if password == "":
password_error = "Please enter a valid password."
elif len(password) < 3 or len(password) > 20:
password_error = "Password must be between 3 and 20 characters long."
elif " " in password:
password_error = "Your password cannot contain any spaces."
if verify == "" or verify != password:
verify_error = "Passwords do not match. Please try again."
verify = ""
# Validate Email
if email != "":
# Used regex for email validation.
if not re.match(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", email):
email_error = "Not a valid email address."
if not username_error and not password_error and not verify_error and not email_error:
return render_template('welcome.html', username = username)
else:
return render_template(
'index.html',
username = username,
username_error = username_error,
password_error = password_error,
verify_error = verify_error,
email = email,
email_error = email_error)
app.run()