পাইথন CGI স্ক্রিপ্ট ব্যবহার করে MySQL ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করার একটি উদাহরণ নিচে দেওয়া হল। এখানে একটি লগইন সিস্টেম তৈরি করা হয়েছে।
login.html
<html> <body> <form action="login.py" method="get"> email: <input type="text" name="e1"> password: <input type="password" name="p1"> <input type="submit" value="register"> </form> </body> </html>
login.py
#!C:\Python27\python.exe
import MySQLdb
import cgi
import Cookie
# ডাটাবেস সংযোগ খোলা
db = MySQLdb.connect("localhost","root","","student" )
# কার্সর অবজেক্ট তৈরি
cursor = db.cursor()
data = cgi.FieldStorage()
a = data.getvalue('e1')
b = data.getvalue('p1')
# SQL কোয়েরি প্রস্তুত
sql = "select id,email,password from user where email='"+a+"' AND password='"+b+"'"
try:
# SQL কমান্ড এক্সিকিউট
if cursor.execute(sql):
# ডাটাবেসে পরিবর্তন কমিট
db.commit()
c = Cookie.SimpleCookie()
# মান অ্যাসাইন
c['mou'] = a
# মেয়াদোত্তীর্ণ সময় সেট
c['mou']['expires'] = 24*60*60
# হেডার প্রিন্ট, কুকির সাথে শুরু
print(c)
print("Content-type: text/html")
print('''<html> <head> <title>Hello Word - First CGI Program</title> </head> <body> <h2>successfully login</h2> </body> </html>''')
else:
db.commit()
print("Content-type: text/html")
print("<html>")
print("<body>")
print("<h2>fail</h2>")
print("</body>")
print("</html>")
except:
# ত্রুটি হলে রোলব্যাক
db.rollback()
# সার্ভার থেকে ডিসকানেক্ট
db.close()
গুরুত্বপূর্ণ নোট
- এই উদাহরণে Python 2.7 এবং MySQLdb ব্যবহার করা হয়েছে। আধুনিক Python 3-এ
mysql-connector-pythonবাPyMySQLব্যবহার করা উচিত। - SQL ইনজেকশন প্রতিরোধের জন্য প্যারামিটারাইজড কোয়েরি ব্যবহার করুন।
- পাসওয়ার্ড প্লেইন টেক্সটে সংরক্ষণ করা নিরাপদ নয়; হ্যাশিং ব্যবহার করুন।