Bladeren bron

can write to guestbook when logged in

https
jakobsn 6 jaren geleden
bovenliggende
commit
87497bfb04
5 gewijzigde bestanden met toevoegingen van 74 en 7 verwijderingen
  1. +9
    -1
      mysql/sql/init.sql
  2. +8
    -1
      src/app/forms.py
  3. +16
    -1
      src/app/model.py
  4. +22
    -0
      src/app/templates/guestbook.html
  5. +19
    -4
      src/app/views.py

+ 9
- 1
mysql/sql/init.sql Bestand weergeven

@@ -3,10 +3,18 @@ CREATE TABLE `db`.`users` (
`userid` INT AUTO_INCREMENT,
`username` VARCHAR(45) NULL,
`password` VARCHAR(45) NULL,
PRIMARY KEY (`userid`));
PRIMARY KEY (`userid`)
);
CREATE TABLE `db`.`guestbook` (
`entryid` INT AUTO_INCREMENT,
`text` VARCHAR(255) NULL,
PRIMARY KEY (`entryid`)
);

insert into users values (NULL, "admin", "password");
insert into users values (NULL, "bernt", "inge");

insert into guestbook values (NULL, "Hello World");

CREATE USER 'root'@'10.5.0.6' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON db.* TO 'root'@'10.5.0.6';

+ 8
- 1
src/app/forms.py Bestand weergeven

@@ -12,4 +12,11 @@ register_form = form.Form(
form.Textbox("username", description="Username"),
form.Password("password", description="Password"),
form.Button("Register", type="submit", description="Register"),
)
)

# Define the guestbook form
guestbook_form = form.Form(
form.Textbox("entry", description="Entry"),
form.Button("Submit", type="submit", description="submit")
)


+ 16
- 1
src/app/model.py Bestand weergeven

@@ -23,8 +23,23 @@ def match_user(username, password):
user = cursor.fetchall()
return user

def register_user(username, password):
def set_user(username, password):
cursor = db.cursor()
query = ("INSERT INTO users VALUES (NULL, (%s), (%s))")
cursor.execute(query, (username, password))
cursor.close()

def get_guestbook_entries():
cursor = db.cursor()
query = ("SELECT entryid, text FROM guestbook")
cursor.execute(query)
entries = cursor.fetchall()
cursor.close()
return entries

def set_guestbook_entry(entry):
cursor = db.cursor()
query = ("INSERT INTO guestbook VALUES (NULL, \"" + entry + "\")")
cursor.execute(query)
cursor.close()

+ 22
- 0
src/app/templates/guestbook.html Bestand weergeven

@@ -0,0 +1,22 @@
$def with (entries, guesbook_form)

<head>
<title>Friends</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="static/stylesheet.css">

</head>

<body>
<h1>Guestbook</h1>
<ul>
$for entry in entries:
<li id="entry[0]">$entry[1]</li>

</ul>
$if session.username:
<h2>Write an entry<h2>
<form method="POST">
$:guesbook_form.render()
</form>
</body>

+ 19
- 4
src/app/views.py Bestand weergeven

@@ -1,5 +1,5 @@
import web
from forms import login_form, register_form
from forms import login_form, register_form, guestbook_form
import model

# Define application routes
@@ -7,6 +7,7 @@ urls = (
'/', 'index',
'/logout', 'logout',
'/register', 'register',
'/guestbook', 'guestbook',
)
# Initialize application using the web py framework
@@ -25,6 +26,7 @@ else:
# Add session to global variables
render._add_global(session, 'session')


class index():

# Get main page
@@ -47,6 +49,7 @@ class index():
session.username = data.username
return render.index(login_form, friends)


class register:

# Get the registration form
@@ -56,13 +59,25 @@ class register:
# Register new user in database
def POST(self):
data = web.input()
model.register_user(data.username, data.password)
return render.register(register_form)
model.set_user(data.username, data.password)
raise web.seeother('/')


class guestbook:

# Get guestbook entries
def GET(self):
entries = model.get_guestbook_entries()
return render.guestbook(entries, guestbook_form)

def POST(self):
data = web.input()
model.set_guestbook_entry(data.entry)
return web.seeother("/guestbook")

class logout:

# Kill session
def GET(self):
session.kill()
return "Logged Out"
raise web.seeother('/')

Laden…
Annuleren
Opslaan