Re: [Tutor] MySQLdb simple menu

2008-08-16 Thread David

David wrote:
New to python and programming. This works but I don't like the way it 
is set up. I would like to have a simple menu like;

[code]
def options():
   print \
   """ Options:
   'p' Print Options
   'l' Login
   'c' Create account
   'q' Quit
   """

options()

def choice():
   choice = "p"
   while choice != "q":
   choice = raw_input("Options: ")
   if choice == "p":
   print options()

   if choice == "l":
   login()

   if choice == "c":
   newlogin()

   if choice == "q":
   sys.exit(0)

   else:
  print "That option does not exsist!"
  choice = raw_input("Option: ")
choice()
[/code]

But I can't get it to work, I can't get past;
[code]
for row in rows:
[/code]


Works but I don't like that you have to try to login first, would like 
it to give you the option to;


login
create account
print menu
exit

[code]
import sys
import MySQLdb
import MySQLdb.cursors

conn = MySQLdb.Connect(
   host='localhost', user='root',
   passwd='atlantic', db='python', compress=1,
   cursorclass=MySQLdb.cursors.DictCursor)

cursor = conn.cursor()
cursor.execute("SELECT * FROM login")
rows = cursor.fetchall()
cursor.close()
conn.close()
username = raw_input("Enter your username (q to exit): ")
password = raw_input("Enter your password (q to exit): ")

for row in rows:

   if username == row['username'] and password == row['password']:
   print "Hello", username
   sys.exit(0)

else:
   r = raw_input("Login failed, do you want to create an account? [y/n]")
   if r != 'y' : sys.exit(0)

newname = ""
data = []
newname = raw_input("Please enter a username: ")
newpw = raw_input("Please enter a password: ")
tuple = (newname, newpw)
data.append(tuple)
db = MySQLdb.connect(
   host="localhost",
   user="root",
   passwd="atlantic",
   db="python")
cursor = db.cursor()

cursor.executemany(
   "INSERT INTO login (username, password)VALUES (%s, %s)", data)
[/code]


How does this look;

#!/usr/bin/python
#Filename : choices.py

import sys
import MySQLdb
import MySQLdb.cursors

def login():
   conn = MySQLdb.Connect(
   host='localhost', user='root',
   passwd='atlantic', db='python', compress=1,
   cursorclass=MySQLdb.cursors.DictCursor)

   cursor = conn.cursor()
   cursor.execute("SELECT * FROM login")
   rows = cursor.fetchall()
   cursor.close()
   conn.close()
   username = raw_input("Enter your username (q to exit): ")
   password = raw_input("Enter your password (q to exit): ")

   for row in rows:

   if username == row['username'] and password == row['password']:
   print "Hello", username
   sys.exit(0)
   print "Login failed!"
def newlogin():
   newname = ""
   data = []
   newname = raw_input("Please enter a username: ")
   newpw = raw_input("Please enter a password: ")
   tuple = (newname, newpw)
   data.append(tuple)
   db = MySQLdb.connect(
   host="localhost",
   user="root",
   passwd="atlantic",
   db="python")
   cursor = db.cursor()

   cursor.executemany(
   "INSERT INTO login (username, password)VALUES (%s, %s)", data)
   print "Account created for", newname
   sys.exit(0)


def options():
   print \
"""
Please pick one:

'p' Print Options
'l' Login
'c' Create account
'q' Quit
"""
options()
choice = "p"
while choice != "q":
   choice = raw_input("Please pick an option: ")
   if choice == "p":
   options()

   elif choice == "l":
   login()

   elif choice == "c":
   newlogin()

   elif choice == "q":
   print "Goodbye!"

seems to work OK.

--
Have Fun,
David A.

Powered by Gentoo GNU/LINUX
http://www.linuxcrazy.com

___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] MySQLdb simple menu

2008-08-16 Thread David
New to python and programming. This works but I don't like the way it is 
set up. I would like to have a simple menu like;

[code]
def options():
   print \
   """ Options:
   'p' Print Options
   'l' Login
   'c' Create account
   'q' Quit
   """

options()

def choice():
   choice = "p"
   while choice != "q":
   choice = raw_input("Options: ")
   if choice == "p":
   print options()

   if choice == "l":
   login()

   if choice == "c":
   newlogin()

   if choice == "q":
   sys.exit(0)

   else:
  print "That option does not exsist!"
  choice = raw_input("Option: ")
choice()
[/code]

But I can't get it to work, I can't get past;
[code]
for row in rows:
[/code]


Works but I don't like that you have to try to login first, would like 
it to give you the option to;


login
create account
print menu
exit

[code]
import sys
import MySQLdb
import MySQLdb.cursors

conn = MySQLdb.Connect(
   host='localhost', user='root',
   passwd='atlantic', db='python', compress=1,
   cursorclass=MySQLdb.cursors.DictCursor)

cursor = conn.cursor()
cursor.execute("SELECT * FROM login")
rows = cursor.fetchall()
cursor.close()
conn.close()
username = raw_input("Enter your username (q to exit): ")
password = raw_input("Enter your password (q to exit): ")

for row in rows:

   if username == row['username'] and password == row['password']:
   print "Hello", username
   sys.exit(0)

else:
   r = raw_input("Login failed, do you want to create an account? [y/n]")
   if r != 'y' : sys.exit(0)

newname = ""
data = []
newname = raw_input("Please enter a username: ")
newpw = raw_input("Please enter a password: ")
tuple = (newname, newpw)
data.append(tuple)
db = MySQLdb.connect(
   host="localhost",
   user="root",
   passwd="atlantic",
   db="python")
cursor = db.cursor()

cursor.executemany(
   "INSERT INTO login (username, password)VALUES (%s, %s)", data)
[/code]

--
Have Fun,
David A.

Powered by Gentoo GNU/LINUX
http://www.linuxcrazy.com

___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor