如何利用MySQL和Python开发一个简单的在线订餐系统
随着互联网的快速发展,越来越多的人选择在线订餐来解决日常的饮食需求。为了满足用户的需求,许多公司开发了各式各样的在线订餐系统。本文将介绍如何使用MySQL和Python来开发一个简单的在线订餐系统,并提供具体的代码示例。
首先,我们需要创建一个MySQL数据库来存储菜单信息、用户信息以及订单信息。可以使用以下SQL语句创建相应的表:
CREATE TABLE IF NOT EXISTS `menu` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(100) NOT NULL,
`price` DECIMAL(10,2) NOT NULL
);
CREATE TABLE IF NOT EXISTS `users` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`username` VARCHAR(100) NOT NULL,
`password` VARCHAR(100) NOT NULL
);
CREATE TABLE IF NOT EXISTS `orders` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`user_id` INT NOT NULL,
`menu_id` INT NOT NULL,
`quantity` INT NOT NULL,
`date` DATE NOT NULL
);
登录后复制
接下来,我们使用Python和MySQL连接库来实现数据库的连接和操作。以下是MySQL连接的代码示例:
import mysql.connector
# 连接MySQL数据库
def connect_db():
conn = mysql.connector.connect(
host="localhost",
user="your_username",
password="your_password",
database="your_database"
)
return conn
# 查询菜单
def get_menu():
conn = connect_db()
cursor = conn.cursor()
cursor.execute("SELECT * FROM menu")
menu = cursor.fetchall()
cursor.close()
conn.close()
return menu
# 用户注册
def register(username, password):
conn = connect_db()
cursor = conn.cursor()
cursor.execute("INSERT INTO users (username, password) VALUES (%s, %s)", (username, password))
conn.commit()
cursor.close()
conn.close()
# 用户登录
def login(username, password):
conn = connect_db()
cursor = conn.cursor()
cursor.execute("SELECT * FROM users WHERE username = %s AND password = %s", (username, password))
user = cursor.fetchone()
cursor.close()
conn.close()
return user
# 下订单
def place_order(user_id, menu_id, quantity, date):
conn = connect_db()
cursor = conn.cursor()
cursor.execute("INSERT INTO orders (user_id, menu_id, quantity, date) VALUES (%s, %s, %s, %s)", (user_id, menu_id, quantity, date))
conn.commit()
cursor.close()
conn.close()
登录后复制
现在我们已经可以从数据库中查询菜单、实现用户注册和登录以及下订单了。
为了让用户能够使用在线订餐系统,我们需要一个简单的用户界面。以下是使用Python的Flask库来实现一个简单的网页界面的代码示例:
from flask import Flask, render_template, request
app = Flask(__name__)
# 用户界面
@app.route("/")
def index():
menu = get_menu()
return render_template("index.html", menu=menu)
# 用户注册
@app.route("/register", methods=["GET", "POST"])
def register_page():
if request.method == "POST":
username = request.form["username"]
password = request.form["password"]
register(username, password)
return render_template("success.html")
return render_template("register.html")
# 用户登录
@app.route("/login", methods=["GET", "POST"])
def login_page():
if request.method == "POST":
username = request.form["username"]
password = request.form["password"]
user = login(username, password)
if user:
return render_template("success.html")
else:
return render_template("login.html", error="Invalid username or password.")
return render_template("login.html")
# 下订单
@app.route("/place_order", methods=["POST"])
def place_order_page():
user_id = request.form["user_id"]
menu_id = request.form["menu_id"]
quantity = request.form["quantity"]
date = request.form["date"]
place_order(user_id, menu_id, quantity, date)
return render_template("success.html")
if __name__ == "__main__":
app.run()
登录后复制
上述代码创建了一个基于Flask的简易网页界面,包括主页、用户注册页、用户登录页和下订单页。
最后,我们需要创建相应的html模板文件来呈现网页界面。以下是一个简单的示例:
index.html:
Online Ordering System
{% for item in menu %}
{{ item[1] }}
Price: {{ item[2] }}
Order
{% endfor %}
登录后复制
register.html:
User Registration
User Registration
Register
登录后复制
login.html:
User Login
User Login
{% if error %}
{{ error }}
{% end %}
Login
登录后复制
success.html:
Success
Success
Your order has been placed successfully.
登录后复制
以上就是如何利用MySQL和Python开发一个简单的在线订餐系统的详细代码示例。通过参考该示例,您可以进一步扩展和优化您的在线订餐系统,以适应实际需求。
以上就是如何利用MySQL和Python开发一个简单的在线订餐系统的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!