计算机毕业设计Python+django 宠物领养中心小程序(源码+系统+mysql数据库+Lw文档)

项目介绍

据世界动物保护协会统计,全世界大概有5亿只流浪狗和散养的狗和大致同样数量的流浪猫,而这些主要源于主人的弃养。同时,在很多地区,狗和猫都处于散养状态,这部分的动物,也经常会变成流浪动物。猫和狗又都有着较高的繁殖率,使流浪猫狗的种群迅速壮大。流浪猫狗因其可能携带的病毒对社区其他居民,尤其是儿童的健康产生威胁,以及它们产生的粪尿对寄居的社区卫生造成污染、发情期间所产生的噪音被广为诟病。因此怎样帮助这些流浪猫狗、尽量减少流浪猫狗的数量、降低流浪猫狗传播疾病的风险成为一个问题。宠物爱心领养网站的实现,为那些无心或无力再饲养宠物的市民,提供了一个解决问题的平台,他们可以到领养网站上发布自己宠物的基本信息,为自己的宠物找到另一个家,让那些有爱心、有时间精力照顾它们的家庭收养他们。同时也为那些喜欢养宠物的人提供了一个交流饲养经验的平台。。
通过以上的调研研究发现,如此多的流浪动物是如此的可怜,动物是人类的朋友,是人类的邻居,是人类的友好亲朋。从某种意义来讲,因为人类拥有高新技术,拥有了各种各样动物所不具备的实力,就自视是万物之灵、是强者,但是,我们没有权利恃强凌弱去摧残无辜的可爱的生命。相反,要保护它们,要善待它们。在国际交往中,我们还要注意类似和善待动物有关的问题。所有为了能够呼吁更多的人参加到保护这些动物的行列中来,我们开发了本网站,旨在让大家都能参加到保护动物的行列中来。

计算机毕业设计Python+django 宠物领养中心小程序(源码+系统+mysql数据库+Lw文档)_第1张图片

开发环境

计算机毕业设计Python+django 宠物领养中心小程序(源码+系统+mysql数据库+Lw文档)
开发语言:Python
python框架:django
软件版本:python3.7/python3.8
数据库:mysql 5.7或更高版本
数据库工具:Navicat11
开发软件:PyCharm/vs code
前端框架:vue.js
可开发框架:ssm/Springboot/vue/python/PHP/小程序/安卓均可开发

系统截图

计算机毕业设计Python+django 宠物领养中心小程序(源码+系统+mysql数据库+Lw文档)_第2张图片
计算机毕业设计Python+django 宠物领养中心小程序(源码+系统+mysql数据库+Lw文档)_第3张图片
计算机毕业设计Python+django 宠物领养中心小程序(源码+系统+mysql数据库+Lw文档)_第4张图片
计算机毕业设计Python+django 宠物领养中心小程序(源码+系统+mysql数据库+Lw文档)_第5张图片

计算机毕业设计Python+django 宠物领养中心小程序(源码+系统+mysql数据库+Lw文档)_第6张图片

核心代码

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

        error = orders.createbyreq(orders, orders, req_dict)
        if error != None:
            msg['code'] = crud_error_code
            msg['msg'] = "用户已存在,请勿重复注册!"
        return JsonResponse(msg)

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

        datas = orders.getbyparams(orders, orders, req_dict)
        if not datas:
            msg['code'] = password_error_code
            msg['msg'] = mes.password_error_code
            return JsonResponse(msg)
        try:
            __sfsh__= orders.__sfsh__
        except:
            __sfsh__=None

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


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

        return JsonResponse(msg)


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

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

        error = orders.updatebyparams(orders,orders, req_dict)

        if error != None:
            msg['code'] = crud_error_code
            msg['msg'] = error
        return JsonResponse(msg)



def orders_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']  = orders.getbyparams(orders, orders, req_dict)[0]

        return JsonResponse(msg)


def orders_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=orders.getbyparams(orders, orders, req_dict)
        if len(data)>0:
            msg['data']  = data[0]
        else:
            msg['data']  = {}
        return JsonResponse(msg)

def orders_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")

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

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


            #authColumn=list(__authTables__.keys())[0]
            #authTable=__authTables__.get(authColumn)

            # if authTable==tablename:
                #params = request.session.get("params")
                #req_dict[authColumn]=params.get(authColumn)

        '''__authSeparate__此属性为真,params添加userid,后台只查询个人数据'''
        try:
            __authSeparate__=orders.__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

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

        else:
            #非管理员权限的表,判断当前表字段名是否有userid
            if tablename!="users" and "userid" in orders.getallcolumn(orders,orders):
                req_dict["userid"] = request.session.get("params").get("id")

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

        if __authTables__!=None and  __authTables__!={}:
            try:
                del req_dict['userid']
            except:
                pass
            for authColumn,authTable in __authTables__.items():
                if authTable==tablename:
                    params = request.session.get("params")
                    req_dict[authColumn]=params.get(authColumn)
                    break
        msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
        msg['data']['pageSize']  =orders.page(orders, orders, req_dict)

        return JsonResponse(msg)

你可能感兴趣的:(python,django,数据库)