大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。

🎀 Python毕业设计

精彩专栏推荐👇🏻👇🏻👇🏻

💞当前专栏:Java毕业设计
🌎微信小程序毕业设计

开发环境

开发语言:Python
框架:django
Python版本:python3.7.7
数据库:mysql 5.7
数据库工具:Navicat11
开发软件:PyCharm
浏览器:谷歌浏览器

演示视频

django基于深度学习的旅游推荐系统设计与实现

论文目录

【如需全文请按文末获取联系】
在这里插入图片描述
在这里插入图片描述

一、项目简介

本研究开发的旅游推荐系统基于 Python 编程语言,采用 Django 框架构建后端服务,并以 MySQL 数据库实现数据持久化存储。Python 语言以其简洁高效的特点,为系统开发提供了强大的支持,而 Django 框架的高性能、可扩展性及内置的安全机制,确保了系统的稳定运行和数据安全。MySQL 数据库则凭借其强大的关系型数据处理能力,为系统高效存储和管理海量旅游数据提供了坚实基础。系统整合了江西丰富的旅游资源,涵盖景点介绍、旅游攻略、路线规划等功能模块。系统根据用户偏好提供精准推荐。景点模块详细展示江西各地特色景点的图文信息、开放时间和门票价格,而旅游路线规划功能则结合用户需求智能生成个性化行程。

二、系统设计

2.1软件功能模块设计

以用户需求为导向的功能架构设计是软件系统构建的基石,通常分为管理端和用户端两大模块。该设计强调了操作的简便性和数据处理的精确性,以保证用户能够迅速且准确地处理系统内的信息。系统各功能划分结构如图4-1所示。
在这里插入图片描述

2.2数据库设计

本系统的整体E-R实体属性如图4-2所示。
在这里插入图片描述

三、系统项目部分截图

3.1系统前台功能实现

系统首页为用户提供江西旅游的核心信息与便捷入口。其中,“江西景点”模块集中展示江西的热门景点,如庐山、滕王阁等,方便用户快速了解;“江西旅游”提供旅游攻略、推荐线路等综合信息,助力用户规划行程;“个人中心”则是用户管理个人资料、收藏及偏好设置的专属空间,提升个性化体验。系统首页页面如图5-1所示:
在这里插入图片描述
在基于深度学习的旅游推荐系统中,个人中心功能为用户提供便捷的个性化服务。用户可以在此修改密码,确保账户安全。旅游路线规划功能根据用户偏好和历史行为,利用深度学习算法生成定制化路线。我的收藏则方便用户保存心仪的旅游景点、酒店或攻略,方便随时查看,提升用户体验。个人中心页面如图5-2所示:
在这里插入图片描述

3.2后台管理员功能实现

管理员主页面作为系统控制中心,提供全面的管理功能。页面通常详细列出所有管理模块,包括用户、江西景点、江西旅游、旅游路线规划、轮播图管理、个人中心等,确保管理员能够高效地进行日常管理工作。整个页面布局清晰,功能模块化,便于管理员快速定位和操作。管理员主界面如图5-3所示:
在这里插入图片描述
管理员点击“看板”功能后,将进入一个数据可视化界面,直观展示江西旅游的核心业务数据。看板上可查看团游价格、江西景点总数、各景点门票价格、景点热度排名、景点评论数量与趋势、江西旅游攻略总数、热门旅游路线、团游评论情况以及团游的销售数据等。这些数据以图表和数字形式呈现,帮助管理员快速掌握业务动态,为决策提供数据支持。如图5-8所示:
在这里插入图片描述

四、部分核心代码

#coding:utf-8
import base64, copy, logging, os, sys, time, xlrd, json, datetime, configparser
from django.http import JsonResponse
from django.apps import apps
import numbers
from django.db.models.aggregates import Count,Sum
from django.db.models import Case, When, IntegerField, F
from django.forms import model_to_dict
import requests
from util.CustomJSONEncoder import CustomJsonEncoder
from .models import lvyouluxianguihua
from util.codes import *
from util.auth import Auth
from util.common import Common
import util.message as mes
from django.db import connection
import random
from django.core.mail import send_mail
from django.conf import settings
from django.shortcuts import redirect
from django.db.models import Q
from util.baidubce_api import BaiDuBce
from .config_model import config


def lvyouluxianguihua_register(request):
    if request.method in ["POST", "GET"]:
        msg = {'code': normal_code, "msg": mes.normal_code}
        req_dict = request.session.get("req_dict")


        error = lvyouluxianguihua.createbyreq(lvyouluxianguihua, lvyouluxianguihua, req_dict)
        if error is Exception:
            msg['code'] = crud_error_code
            msg['msg'] = "用户已存在,请勿重复注册!"
        else:
            msg['data'] = error
        return JsonResponse(msg, encoder=CustomJsonEncoder)

def lvyouluxianguihua_login(request):
    if request.method in ["POST", "GET"]:
        msg = {'code': normal_code, "msg": mes.normal_code}
        req_dict = request.session.get("req_dict")
        datas = lvyouluxianguihua.getbyparams(lvyouluxianguihua, lvyouluxianguihua, req_dict)
        if not datas:
            msg['code'] = password_error_code
            msg['msg'] = mes.password_error_code
            return JsonResponse(msg, encoder=CustomJsonEncoder)

        try:
            __sfsh__= lvyouluxianguihua.__sfsh__
        except:
            __sfsh__=None

        if  __sfsh__=='是':
            if datas[0].get('sfsh')!='是':
                msg['code']=other_code
                msg['msg'] = "账号已锁定,请联系管理员审核!"
                return JsonResponse(msg, encoder=CustomJsonEncoder)
                
        req_dict['id'] = datas[0].get('id')


        return Auth.authenticate(Auth, lvyouluxianguihua, req_dict)


def lvyouluxianguihua_logout(request):
    if request.method in ["POST", "GET"]:
        msg = {
            "msg": "登出成功",
            "code": 0
        }

        return JsonResponse(msg, encoder=CustomJsonEncoder)


def lvyouluxianguihua_resetPass(request):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code}

        req_dict = request.session.get("req_dict")

        columns=  lvyouluxianguihua.getallcolumn( lvyouluxianguihua, lvyouluxianguihua)

        try:
            __loginUserColumn__= lvyouluxianguihua.__loginUserColumn__
        except:
            __loginUserColumn__=None
        username=req_dict.get(list(req_dict.keys())[0])
        if __loginUserColumn__:
            username_str=__loginUserColumn__
        else:
            username_str=username
        if 'mima' in columns:
            password_str='mima'
        else:
            password_str='password'

        init_pwd = '123456'
        recordsParam = {}
        recordsParam[username_str] = req_dict.get("username")
        records=lvyouluxianguihua.getbyparams(lvyouluxianguihua, lvyouluxianguihua, recordsParam)
        if len(records)<1:
            msg['code'] = 400
            msg['msg'] = '用户不存在'
            return JsonResponse(msg, encoder=CustomJsonEncoder)

        eval('''lvyouluxianguihua.objects.filter({}='{}').update({}='{}')'''.format(username_str,username,password_str,init_pwd))
        
        return JsonResponse(msg, encoder=CustomJsonEncoder)



def lvyouluxianguihua_session(request):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code,"msg": mes.normal_code, "data": {}}

        req_dict={"id":request.session.get('params').get("id")}
        msg['data']  = lvyouluxianguihua.getbyparams(lvyouluxianguihua, lvyouluxianguihua, req_dict)[0]

        return JsonResponse(msg, encoder=CustomJsonEncoder)


def lvyouluxianguihua_default(request):

    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code,"msg": mes.normal_code, "data": {}}
        req_dict = request.session.get("req_dict")
        req_dict.update({"isdefault":"是"})
        data=lvyouluxianguihua.getbyparams(lvyouluxianguihua, lvyouluxianguihua, req_dict)
        if len(data)>0:
            msg['data']  = data[0]
        else:
            msg['data']  = {}
        return JsonResponse(msg, encoder=CustomJsonEncoder)

def lvyouluxianguihua_page(request):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code,  "data":{"currPage":1,"totalPage":1,"total":1,"pageSize":10,"list":[]}}
        req_dict = request.session.get("req_dict")

        global lvyouluxianguihua

        #获取全部列名
        columns=  lvyouluxianguihua.getallcolumn( lvyouluxianguihua, lvyouluxianguihua)

        if "vipread" in req_dict and "vipread" not in columns:
          del req_dict["vipread"]

        #当前登录用户所在表
        tablename = request.session.get("tablename")

        '''__authSeparate__此属性为真,params添加userid,后台只查询个人数据'''
        try:
            __authSeparate__=lvyouluxianguihua.__authSeparate__
        except:
            __authSeparate__=None

        if __authSeparate__=="是":
            tablename=request.session.get("tablename")
            if tablename!="users" and 'userid' in columns and 'userid' not in req_dict:
                try:
                    req_dict['userid']=request.session.get("params").get("id")
                except:
                    pass

        #当项目属性hasMessage为”是”,生成系统自动生成留言板的表messages,同时该表的表属性hasMessage也被设置为”是”,字段包括userid(用户id),username(用户名),content(留言内容),reply(回复)
        #接口page需要区分权限,普通用户查看自己的留言和回复记录,管理员查看所有的留言和回复记录
        try:
            __hasMessage__=lvyouluxianguihua.__hasMessage__
        except:
            __hasMessage__=None
        if  __hasMessage__=="是":
            tablename=request.session.get("tablename")
            if tablename!="users":
                req_dict["userid"]=request.session.get("params").get("id")

        # 判断当前表的表属性isAdmin,为真则是管理员表
        # 当表属性isAdmin=”是”,刷出来的用户表也是管理员,即page和list可以查看所有人的考试记录(同时应用于其他表)
        __isAdmin__ = None

        allModels = apps.get_app_config('main').get_models()
        for m in allModels:
            if m.__tablename__==tablename:

                try:
                    __isAdmin__ = m.__isAdmin__
                except:
                    __isAdmin__ = None
                break

        # 当前表也是有管理员权限的表
        if  __isAdmin__ == "是" and 'lvyouluxianguihua' != 'forum' :
            if req_dict.get("userid") and 'lvyouluxianguihua' != 'chat' and 'lvyouluxianguihua' != 'examrecord':
                del req_dict["userid"]
        else:
            if tablename!="users" and tablename!="jdfnl" and 'lvyouluxianguihua'[:7]!='discuss' and "userid" in lvyouluxianguihua.getallcolumn(lvyouluxianguihua,lvyouluxianguihua):
                req_dict["userid"] = request.session.get("params").get("id")

        #当列属性authTable有值(某个用户表)[该列的列名必须和该用户表的登陆字段名一致],则对应的表有个隐藏属性authTable为”是”,那么该用户查看该表信息时,只能查看自己的
        try:
            __authTables__=lvyouluxianguihua.__authTables__
        except:
            __authTables__=None

        if __authTables__!=None and  __authTables__!={} and __isAdmin__ == "是":
            for authColumn,authTable in __authTables__.items():
                if authTable==tablename:
                    params = request.session.get("params")
                    req_dict[authColumn]=params.get(authColumn)
                    username=params.get(authColumn)
                    break
        if tablename == 'yonghu':
            from .models import yonghu
            req_dict['zhanghao'] = request.session.get("params").get(yonghu.__loginUserColumn__)
            if 'userid' in req_dict.keys():
                del req_dict["userid"]
        q = Q()

        msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
        msg['data']['pageSize']  =lvyouluxianguihua.page(lvyouluxianguihua, lvyouluxianguihua, req_dict, request, q)
        return JsonResponse(msg, encoder=CustomJsonEncoder)

def lvyouluxianguihua_autoSort(request):
    '''
    .智能推荐功能(表属性:[intelRecom(是/否)],新增clicktime[前端不显示该字段]字段(调用info/detail接口的时候更新),按clicktime排序查询)
主要信息列表(如商品列表,新闻列表)中使用,显示最近点击的或最新添加的5条记录就行
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code,  "data":{"currPage":1,"totalPage":1,"total":1,"pageSize":10,"list":[]}}
        req_dict = request.session.get("req_dict")
        if "clicknum"  in lvyouluxianguihua.getallcolumn(lvyouluxianguihua,lvyouluxianguihua):
            req_dict['sort']='clicknum'
        elif "browseduration"  in lvyouluxianguihua.getallcolumn(lvyouluxianguihua,lvyouluxianguihua):
            req_dict['sort']='browseduration'
        else:
            req_dict['sort']='clicktime'
        req_dict['order']='desc'
        msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
        msg['data']['pageSize']  = lvyouluxianguihua.page(lvyouluxianguihua,lvyouluxianguihua, req_dict)

        return JsonResponse(msg, encoder=CustomJsonEncoder)

#分类列表
def lvyouluxianguihua_lists(request):
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code,  "data":[]}
        msg['data'],_,_,_,_  = lvyouluxianguihua.page(lvyouluxianguihua, lvyouluxianguihua, {})
        return JsonResponse(msg, encoder=CustomJsonEncoder)

def lvyouluxianguihua_query(request):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
        try:
            query_result = lvyouluxianguihua.objects.filter(**request.session.get("req_dict")).values()
            msg['data'] = query_result[0]
        except Exception as e:

            msg['code'] = crud_error_code
            msg['msg'] = f"发生错误:{e}"
        return JsonResponse(msg, encoder=CustomJsonEncoder)

def lvyouluxianguihua_list(request):
    '''
    前台分页
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code,  "data":{"currPage":1,"totalPage":1,"total":1,"pageSize":10,"list":[]}}
        req_dict = request.session.get("req_dict")
        #获取全部列名
        columns=  lvyouluxianguihua.getallcolumn( lvyouluxianguihua, lvyouluxianguihua)
        if "vipread" in req_dict and "vipread" not in columns:
          del req_dict["vipread"]
        #表属性[foreEndList]前台list:和后台默认的list列表页相似,只是摆在前台,否:指没有此页,是:表示有此页(不需要登陆即可查看),前要登:表示有此页且需要登陆后才能查看
        try:
            __foreEndList__=lvyouluxianguihua.__foreEndList__
        except:
            __foreEndList__=None
        try:
            __foreEndListAuth__=lvyouluxianguihua.__foreEndListAuth__
        except:
            __foreEndListAuth__=None

        #authSeparate
        try:
            __authSeparate__=lvyouluxianguihua.__authSeparate__
        except:
            __authSeparate__=None

        if __foreEndListAuth__ =="是" and __authSeparate__=="是":
            tablename=request.session.get("tablename")
            if tablename!="users" and request.session.get("params") is not None:
                req_dict['userid']=request.session.get("params").get("id")

        tablename = request.session.get("tablename")
        if tablename == "users" and req_dict.get("userid") != None:#判断是否存在userid列名
            del req_dict["userid"]
        else:
            __isAdmin__ = None

            allModels = apps.get_app_config('main').get_models()
            for m in allModels:
                if m.__tablename__==tablename:

                    try:
                        __isAdmin__ = m.__isAdmin__
                    except:
                        __isAdmin__ = None
                    break

            if __isAdmin__ == "是":
                if req_dict.get("userid"):
                    # del req_dict["userid"]
                    pass
            else:
                #非管理员权限的表,判断当前表字段名是否有userid
                if "userid" in columns:
                    try:
                        pass
                    except:
                        pass
        #当列属性authTable有值(某个用户表)[该列的列名必须和该用户表的登陆字段名一致],则对应的表有个隐藏属性authTable为”是”,那么该用户查看该表信息时,只能查看自己的
        try:
            __authTables__=lvyouluxianguihua.__authTables__
        except:
            __authTables__=None

        if __authTables__!=None and  __authTables__!={} and __foreEndListAuth__=="是":
            for authColumn,authTable in __authTables__.items():
                if authTable==tablename:
                    try:
                        del req_dict['userid']
                    except:
                        pass
                    params = request.session.get("params")
                    req_dict[authColumn]=params.get(authColumn)
                    username=params.get(authColumn)
                    break
        
        if lvyouluxianguihua.__tablename__[:7]=="discuss":
            try:
                del req_dict['userid']
            except:
                pass


        q = Q()
        msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
        msg['data']['pageSize']  = lvyouluxianguihua.page(lvyouluxianguihua, lvyouluxianguihua, req_dict, request, q)
        return JsonResponse(msg, encoder=CustomJsonEncoder)

def lvyouluxianguihua_save(request):
    '''
    后台新增
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
        req_dict = request.session.get("req_dict")
        if 'clicktime' in req_dict.keys():
            del req_dict['clicktime']
        tablename=request.session.get("tablename")
        __isAdmin__ = None
        allModels = apps.get_app_config('main').get_models()
        for m in allModels:
            if m.__tablename__==tablename:

                try:
                    __isAdmin__ = m.__isAdmin__
                except:
                    __isAdmin__ = None
                break

        #获取全部列名
        columns=  lvyouluxianguihua.getallcolumn( lvyouluxianguihua, lvyouluxianguihua)
        if tablename!='users' and req_dict.get("userid")!=None and 'userid' in columns  and __isAdmin__!='是':
            params=request.session.get("params")
            req_dict['userid']=params.get('id')


        if 'addtime' in req_dict.keys():
            del req_dict['addtime']

        idOrErr= lvyouluxianguihua.createbyreq(lvyouluxianguihua,lvyouluxianguihua, req_dict)
        if idOrErr is Exception:
            msg['code'] = crud_error_code
            msg['msg'] = idOrErr
        else:
            msg['data'] = idOrErr

        return JsonResponse(msg, encoder=CustomJsonEncoder)

def lvyouluxianguihua_add(request):
    '''
    前台新增
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
        req_dict = request.session.get("req_dict")
        tablename=request.session.get("tablename")

        #获取全部列名
        columns=  lvyouluxianguihua.getallcolumn( lvyouluxianguihua, lvyouluxianguihua)
        try:
            __authSeparate__=lvyouluxianguihua.__authSeparate__
        except:
            __authSeparate__=None

        if __authSeparate__=="是":
            tablename=request.session.get("tablename")
            if tablename!="users" and 'userid' in columns:
                try:
                    req_dict['userid']=request.session.get("params").get("id")
                except:
                    pass

        try:
            __foreEndListAuth__=lvyouluxianguihua.__foreEndListAuth__
        except:
            __foreEndListAuth__=None

        if __foreEndListAuth__ and __foreEndListAuth__!="否":
            tablename=request.session.get("tablename")
            if tablename!="users":
                req_dict['userid']=request.session.get("params").get("id")


        if 'addtime' in req_dict.keys():
            del req_dict['addtime']
        error= lvyouluxianguihua.createbyreq(lvyouluxianguihua,lvyouluxianguihua, req_dict)
        if error is Exception:
            msg['code'] = crud_error_code
            msg['msg'] = error
        else:
            msg['data'] = error
        return JsonResponse(msg, encoder=CustomJsonEncoder)

def lvyouluxianguihua_thumbsup(request,id_):
    '''
     点赞:表属性thumbsUp[是/否],刷表新增thumbsupnum赞和crazilynum踩字段,
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
        req_dict = request.session.get("req_dict")
        id_=int(id_)
        type_=int(req_dict.get("type",0))
        rets=lvyouluxianguihua.getbyid(lvyouluxianguihua,lvyouluxianguihua,id_)

        update_dict={
        "id":id_,
        }
        if type_==1:#赞
            update_dict["thumbsupnum"]=int(rets[0].get('thumbsupnum'))+1
        elif type_==2:#踩
            update_dict["crazilynum"]=int(rets[0].get('crazilynum'))+1
        error = lvyouluxianguihua.updatebyparams(lvyouluxianguihua,lvyouluxianguihua, update_dict)
        if error!=None:
            msg['code'] = crud_error_code
            msg['msg'] = error
        return JsonResponse(msg, encoder=CustomJsonEncoder)


def lvyouluxianguihua_info(request,id_):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}

        data = lvyouluxianguihua.getbyid(lvyouluxianguihua,lvyouluxianguihua, int(id_))
        if len(data)>0:
            msg['data']=data[0]
            if msg['data'].__contains__("reversetime"):
                if isinstance(msg['data']['reversetime'], datetime.datetime):
                    msg['data']['reversetime'] = msg['data']['reversetime'].strftime("%Y-%m-%d %H:%M:%S")
                else:
                    if msg['data']['reversetime'] != None:
                        reversetime = datetime.datetime.strptime(msg['data']['reversetime'], '%Y-%m-%d %H:%M:%S')
                        msg['data']['reversetime'] = reversetime.strftime("%Y-%m-%d %H:%M:%S")

        #浏览点击次数
        try:
            __browseClick__= lvyouluxianguihua.__browseClick__
        except:
            __browseClick__=None

        if __browseClick__=="是"  and  "clicknum"  in lvyouluxianguihua.getallcolumn(lvyouluxianguihua,lvyouluxianguihua):
            try:
                clicknum=int(data[0].get("clicknum",0))+1
            except:
                clicknum=0+1
            click_dict={"id":int(id_),"clicknum":clicknum,"clicktime":datetime.datetime.now()}
            ret=lvyouluxianguihua.updatebyparams(lvyouluxianguihua,lvyouluxianguihua,click_dict)
            if ret!=None:
                msg['code'] = crud_error_code
                msg['msg'] = ret
        return JsonResponse(msg, encoder=CustomJsonEncoder)

def lvyouluxianguihua_detail(request,id_):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}

        data =lvyouluxianguihua.getbyid(lvyouluxianguihua,lvyouluxianguihua, int(id_))
        if len(data)>0:
            msg['data']=data[0]
            if msg['data'].__contains__("reversetime"):
                if isinstance(msg['data']['reversetime'], datetime.datetime):
                    msg['data']['reversetime'] = msg['data']['reversetime'].strftime("%Y-%m-%d %H:%M:%S")
                else:
                    if msg['data']['reversetime'] != None:
                        reversetime = datetime.datetime.strptime(msg['data']['reversetime'], '%Y-%m-%d %H:%M:%S')
                        msg['data']['reversetime'] = reversetime.strftime("%Y-%m-%d %H:%M:%S")

        #浏览点击次数
        try:
            __browseClick__= lvyouluxianguihua.__browseClick__
        except:
            __browseClick__=None

        if __browseClick__=="是"   and  "clicknum"  in lvyouluxianguihua.getallcolumn(lvyouluxianguihua,lvyouluxianguihua):
            try:
                clicknum=int(data[0].get("clicknum",0))+1
            except:
                clicknum=0+1
            click_dict={"id":int(id_),"clicknum":clicknum,"clicktime":datetime.datetime.now()}

            ret=lvyouluxianguihua.updatebyparams(lvyouluxianguihua,lvyouluxianguihua,click_dict)
            if ret!=None:
                msg['code'] = crud_error_code
                msg['msg'] = ret
        return JsonResponse(msg, encoder=CustomJsonEncoder)

def lvyouluxianguihua_update(request):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
        req_dict = request.session.get("req_dict")
        if 'clicktime' in req_dict.keys() and req_dict['clicktime']=="None":
            del req_dict['clicktime']
        if req_dict.get("mima") and "mima" not in lvyouluxianguihua.getallcolumn(lvyouluxianguihua,lvyouluxianguihua) :
            del req_dict["mima"]
        if req_dict.get("password") and "password" not in lvyouluxianguihua.getallcolumn(lvyouluxianguihua,lvyouluxianguihua) :
            del req_dict["password"]
        try:
            del req_dict["clicknum"]
        except:
            pass


        error = lvyouluxianguihua.updatebyparams(lvyouluxianguihua, lvyouluxianguihua, req_dict)
        if error!=None:
            msg['code'] = crud_error_code
            msg['msg'] = error

        return JsonResponse(msg)


def lvyouluxianguihua_delete(request):
    '''
    批量删除
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
        req_dict = request.session.get("req_dict")

        error=lvyouluxianguihua.deletes(lvyouluxianguihua,
            lvyouluxianguihua,
             req_dict.get("ids")
        )
        if error!=None:
            msg['code'] = crud_error_code
            msg['msg'] = error
        return JsonResponse(msg)


def lvyouluxianguihua_vote(request,id_):
    '''
    浏览点击次数(表属性[browseClick:是/否],点击字段(clicknum),调用info/detail接口的时候后端自动+1)、投票功能(表属性[vote:是/否],投票字段(votenum),调用vote接口后端votenum+1)
统计商品或新闻的点击次数;提供新闻的投票功能
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code}


        data= lvyouluxianguihua.getbyid(lvyouluxianguihua, lvyouluxianguihua, int(id_))
        for i in data:
            votenum=i.get('votenum')
            if votenum!=None:
                params={"id":int(id_),"votenum":votenum+1}
                error=lvyouluxianguihua.updatebyparams(lvyouluxianguihua,lvyouluxianguihua,params)
                if error!=None:
                    msg['code'] = crud_error_code
                    msg['msg'] = error
        return JsonResponse(msg)

def lvyouluxianguihua_importExcel(request):
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": "成功", "data": {}}

        excel_file = request.FILES.get("file", "")
        file_type = excel_file.name.split('.')[1]
        
        if file_type in ['xlsx', 'xls']:
            data = xlrd.open_workbook(filename=None, file_contents=excel_file.read())
            table = data.sheets()[0]
            rows = table.nrows
            
            try:
                for row in range(1, rows):
                    row_values = table.row_values(row)
                    req_dict = {}
                    lvyouluxianguihua.createbyreq(lvyouluxianguihua, lvyouluxianguihua, req_dict)
                    
            except:
                pass
                
        else:
            msg = {
                "msg": "文件类型错误",
                "code": 500
            }
                
        return JsonResponse(msg)

def lvyouluxianguihua_autoSort2(request):
    return JsonResponse({"code": 0, "msg": '',  "data":{}})














获取源码或论文

如需对应的论文或源码,以及其他定制需求,也可以下方微信联系我。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐