计算机毕业设计选题推荐-美食网站-Python项目实战

作者主页:IT研究室✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

一、前言

随着互联网技术的快速发展,人们对于美食的需求和追求也在不断升级。美食网站作为一种将美食与互联网结合的新型服务模式,已经成为人们寻找、了解和体验美食的重要途径。美食网站不仅为人们提供了便捷的美食信息获取方式,还为餐厅提供了展示自己和吸引客户的机会。同时,美食网站也具有文化传播的功能,可以向用户传递美食文化、烹饪技巧等信息,对提高人们的饮食文化素养具有积极的作用。

然而,当前的美食网站在用户管理、餐厅信息管理、菜系分类管理、美食分类管理、美食信息管理、美食文化管理、公告资讯管理、订单管理等方面存在一些问题,如用户信息泄露、餐厅信息不准确、菜系分类不规范、美食信息不真实等。这些问题不仅影响了用户的体验,也影响了餐厅的声誉和形象。因此,对于美食网站来说,建立一套完善的管理系统是十分必要的。

当前,一些美食网站已经尝试解决上述问题,但仍然存在一些不足之处。首先,用户管理方面存在漏洞,用户信息可能被泄露或滥用。其次,餐厅信息管理方面缺乏审核机制,餐厅信息可能存在不准确或虚假的情况。此外,菜系分类和美食分类管理方面缺乏规范的分类标准,导致分类混乱、不规范。同时,美食信息管理方面缺乏审核和监管机制,美食信息可能存在不真实或虚假的情况。再次,公告资讯管理方面缺乏规范的审核和发布机制,公告资讯可能存在不准确或虚假的情况。

本课题旨在研究一种新型的美食网站管理系统,该系统能够对用户、餐厅和管理人员进行管理和监管。具体来说,该系统可以实现以下功能:

用户管理:对用户信息进行收集、存储和管理,保证用户信息的安全性和隐私性。
餐厅信息管理:对餐厅信息进行收集、存储和管理,保证餐厅信息的准确性和真实性。
菜系分类和美食分类管理:建立规范的分类标准和管理机制,保证菜系分类和美食分类的规范性和准确性。
美食信息管理:建立审核和监管机制,保证美食信息的真实性和准确性。
美食文化管理:对美食文化信息进行收集、存储和管理,增进美食文化的传播和发展。
公告资讯管理:建立规范的审核和发布机制,保证公告资讯的准确性和真实性。
订单管理:对订单进行处理和管理,保证订单处理的及时性和准确性。

本课题的研究意义在于解决当前美食网站存在的诸多问题,提高美食网站的服务质量和用户满意度。通过建立完善的管理系统,可以提高用户信息的安全性和隐私性,保证餐厅信息的准确性和真实性,规范菜系分类和美食分类的管理,保证美食信息的真实性和准确性,增进美食文化的传播和发展,保证公告资讯的准确性和真实性,提高订单处理的及时性和准确性。同时,本课题的研究还可以为其他类似网站的管理提供有益的参考和借鉴。

二、开发环境

  • 开发语言:Python
  • 数据库:MySQL
  • 系统架构:B/S
  • 后端:Django
  • 前端:Vue

三、系统功能模块

  • 角色:用户、餐厅、管理员
  • 功能:
    用户
    餐厅信息、美食信息、美食文化信息、公告资讯、购物车、我的订单、我的地址;
    餐厅
    餐厅信息管理、美食信息管理、订单管理;
    管理员
    用户管理、餐厅信息管理、菜系分类管理、美食分类管理、美食信息管理、美食文化管理、公告资讯管理、订单管理。

四、系统界面展示

  • 美食网站-界面展示:
    美食网站-餐厅信息
    美食网站-美食信息
    美食网站-美食详情
    美食网站-购物车
    美食网站-个人中心
    美食网站-美食信息管理-管理员
    美食网站-美食信息管理-餐厅
    美食网站-订单管理

五、代码参考

  • Python项目实战-代码参考:
@admin_food_blu.route("/category")
@user_login_data
def admin_catogory():
    user = g.user
    try:
        categories = Category.query.all()
    except Exception as e:
        current_app.logger.error(e)

    category_list = []
    for category in categories:
        category_list.append(category.to_dict())

    data = {
        "category_list": category_list,
        "user": user.to_admin_dict()
    }
    return render_template("admin/category.html", data=data)


@admin_food_blu.route("/add_category", methods=["GET", "POST"])
@user_login_data
def admin_add_category():
    user = g.user
    if request.method == "POST":
        category_name = request.json.get("category_name", None)
        content = request.json.get("content", None)

        if not all([category_name, content]):
            return jsonify(errno="-1", errmsg="参数错误")

        food_category = Category()
        food_category.category_name = category_name
        food_category.content = content

        try:
            db.session.add(food_category)
            db.session.commit()
        except Exception as e:
            db.session.roolback()
            current_app.logger.error(e)
            return jsonify(errno="-1", errmsg="数据库保存失败")

        return jsonify(errno="0", errmsg="操作成功")

    data = {
        "user": user.to_admin_dict()
    }

    return render_template("admin/add_category.html", data=data)


category_id = 0
food_category = None


@admin_food_blu.route("/alter_category", methods=["GET", "POST"])
@user_login_data
def admin_alter_category():
    user = g.user
    if request.method == "GET":

        global category_id, food_category
        category_id = request.args.get("category_id", None)

        try:
            category_id = int(category_id)
            food_category = Category.query.filter(Category.id == category_id).first()
        except Exception as e:
            current_app.logger.error(e)

        data = {
            "category": food_category.to_dict(),
            "user": user.to_admin_dict()
        }

        return render_template("admin/alter_category.html", data=data)

    if request.method == "POST":
        category_name = request.json.get("category_name", None)
        content = request.json.get("content", None)
        global category_id
        category_id = category_id

        if not all([category_name, content, category_id]):
            return jsonify(errno="-1", errmsg="参数错误")

        food_category.category_name = category_name
        food_category.content = content

        try:
            db.session.commit()
        except Exception as e:
            db.session.roolback()
            current_app.logger.error(e)
            return jsonify(errno="-1", errmsg="数据库保存失败")

        return jsonify(errno="0", errmsg="操作成功")


@admin_food_blu.route("/del_category/<int:category_id>")
def admin_del_category(category_id):

    try:
        food_category = Category.query.filter(Category.id == category_id).first()
    except Exception as e:
        current_app.logger.error(e)

    try:
        db.session.delete(food_category)
        db.session.commit()
    except Exception as e:
        db.session.roolback()
        current_app.logger.error(e)
        return jsonify(errno="-1", errmsg="数据库删除失败")

    return jsonify(errno="0", errmsg="操作成功")


@admin_food_blu.route("/food")
@user_login_data
def admin_food():
    """美食管理"""
    # 获取参数
    user = g.user
    page = request.args.get("p", 1)
    keywords = request.args.get("keywords", None)

    # 校验参数
    try:
        page = int(page)
    except Exception as e:
        current_app.logger.error(e)
        page = 1

    # 分类查询
    categories = []
    try:
        categories = Category.query.all()
    except Exception as e:
        current_app.logger.error(e)

    category_list = []
    for category in categories:
        category_list.append(category.to_dict())

    # 搜索功能
    if keywords:
        search_foods = []
        try:
            search_foods = Food.query.filter(Food.food_name.contains(keywords)).order_by(Food.update_time.desc())
        except Exception as e:
            current_app.logger.error(e)

        search_food_list = []
        for food in search_foods:
            search_food_list.append(food.to_dict())

        data = {
            "category_list": category_list,
            "food_list": search_food_list,
            "user": user.to_admin_dict()
        }
        return render_template("admin/food.html", data=data)

    # 分页查询
    foods = []
    current_page = 1
    total_page = 1
    try:
        paginate = Food.query.order_by(Food.update_time.desc()).paginate(page, 10)
        foods = paginate.items
        current_page = paginate.page
        total_page = paginate.pages
    except Exception as e:
        current_app.logger.error(e)

    food_list = []
    for food in foods:
        food_list.append(food.to_dict())

    data = {
        "current_page": current_page,
        "total_page": total_page,
        "category_list": category_list,
        "food_list": food_list,
        "user": user.to_admin_dict()
    }

    return render_template("admin/food.html", data=data)


@admin_food_blu.route("/add_food", methods=["GET", "POST"])
@user_login_data
def admin_add_food():

    user = g.user
    if request.method == "GET":
        try:
            categories = Category.query.all()
        except Exception as e:
            current_app.logger.error(e)

        category_list = []
        for category in categories:
            category_list.append(category.to_dict())

        data = {
            "category_list": category_list,
            "user": user.to_admin_dict()
        }

        return render_template("admin/add_food.html", data=data)

    food_name = request.form.get("food_name", None)
    price = request.form.get("price", None)
    taste = request.form.get("taste", None)
    cooking_style = request.form.get("cooking_style", None)
    food_image = request.files.get("food_image", None)
    category_id = request.form.get("category_id", None)
    food_introduce = request.form.get("food_introduce", None)

    if not all([food_name, price, taste, cooking_style, food_image, category_id, food_introduce]):
        return jsonify(errno="-1", errmsg="参数错误")

    # 图片保存到七牛云
    try:
        food_image_data = food_image.read()
        # 上传
        key = storage(food_image_data)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno="-1", errmsg="参数有误")

    food = Food()
    food.food_name = food_name
    food.price = price
    food.taste = taste
    food.cooking_style = cooking_style
    food.category_id = category_id
    food.food_image_url = "http://oyucyko3w.bkt.clouddn.com/"+key
    food.food_introduce = food_introduce

    try:
        db.session.add(food)
        db.session.commit()
    except Exception as e:
        db.session.roolback()
        current_app.logger.error(e)
        return jsonify(errno="-1", errmsg="数据库保存失败")

    return jsonify(errno="0", errmsg="操作成功")


@admin_food_blu.route("/alter_food", methods=["GET", "POST"])
@user_login_data
def admin_alter_food():

    user = g.user
    if request.method == "GET":
        # global category_id, food_category
        food_id = request.args.get("food_id", None)
        food = None
        try:
            food_id = int(food_id)
            food = Food.query.filter(Food.id == food_id).first()
        except Exception as e:
            current_app.logger.error(e)

        data = {
            "food": food.to_dict(),
            "user": user.to_admin_dict()
        }

        return render_template("admin/alter_food.html", data=data)

    food_id = request.form.get("food_id", None)
    food_name = request.form.get("food_name", None)
    price = request.form.get("price", None)
    taste = request.form.get("taste", None)
    cooking_style = request.form.get("cooking_style", None)
    food_image = request.files.get("food_image", None)
    category_id = request.form.get("category_id", None)
    food_introduce = request.form.get("food_introduce", None)

    if not all([food_id, food_name, price, taste, cooking_style, category_id, food_introduce]):
        return jsonify(errno="-1", errmsg="参数错误")

    # 查询出food对象
    food = None
    try:
        food_id = int(food_id)
        food = Food.query.filter(Food.id == food_id).first()
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno="-1", errmsg="数据库查询失败")

    if food_image:
        try:
            food_image_data = food_image.read()
            key = storage(food_image_data)
        except Exception as e:
            current_app.logger.error(e)
            return jsonify(errno="-1", errmsg="图片上传有误")

        food.food_image_url = "http://oyucyko3w.bkt.clouddn.com/"+key

    food.food_name = food_name
    food.price = price
    food.taste = taste
    food.cooking_style = cooking_style
    food.category_id = category_id
    food.food_introduce = food_introduce

    try:
        db.session.commit()
    except Exception as e:
        db.session.roolback()
        current_app.logger.error(e)
        return jsonify(errno="-1", errmsg="数据库保存失败")

    return jsonify(errno="0", errmsg="操作成功")


@admin_food_blu.route("/del_food/<int:food_id>")
def admin_del_food(food_id):

    food = None
    try:
        food = Food.query.filter(Food.id == food_id).first()
    except Exception as e:
        current_app.logger.error(e)

    try:
        db.session.delete(food)
        db.session.commit()
    except Exception as e:
        db.session.roolback()
        current_app.logger.error(e)
        return jsonify(errno="-1", errmsg="数据库删除失败")

    return jsonify(errno="0", errmsg="操作成功")
@admin_order_blu.route("/order")
@user_login_data
def admin_order():
    """订单管理页"""
    # 获取参数
    user = g.user
    page = request.args.get("p", 1)

    # 校验参数
    try:
        page = int(page)
    except Exception as e:
        current_app.logger.error(e)
        page = 1

    # 分页查询
    orders = []
    current_page = 1
    total_page = 1
    try:
        paginate = OrderList.query.order_by(OrderList.create_time.desc()).paginate(page, 10)
        orders = paginate.items
        current_page = paginate.page
        total_page = paginate.pages
    except Exception as e:
        current_app.logger.error(e)

    order_list = []

    for order in orders:
        order_list.append(order.to_dict())

    data = {
        "current_page": current_page,
        "total_page": total_page,
        "order_list": order_list,
        "user": user.to_admin_dict()
    }

    return render_template("admin/order.html", data=data)


@admin_order_blu.route("/del_order/<int:order_id>")
def admin_del_order(order_id):

    order_list = None
    try:
        order_list = OrderList.query.filter(OrderList.id == order_id).first()
    except Exception as e:
        current_app.logger.error(e)

    try:
        db.session.delete(order_list)
        db.session.commit()
    except Exception as e:
        db.session.roolback()
        current_app.logger.error(e)
        return jsonify(errno="-1", errmsg="数据库删除失败")

    return jsonify(errno="0", errmsg="操作成功")

六、论文参考

  • 计算机毕业设计选题推荐-美食网站-论文参考:
    计算机毕业设计选题推荐-美食网站-论文参考

七、系统视频

美食网站-项目视频:

基于Python的美食网站

结语

计算机毕业设计选题推荐-美食网站-Python项目实战
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我

精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT研究室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值