python+django+vue+mysql的毕业设计怎么容易通过答辩,python和django毕业设计答辩

102 阅读3分钟

python+django+vue+mysql的毕业设计怎么容易通过答辩,python和django毕业设计答辩

这几天临近毕业,有很多同学在后台问我,python毕业设计应该怎么答辩,怎么答辩会更容易通过,我为大家总结了答辩流程,希望可以帮助到大家,如果需要指导答辩,可以联系

1、你的毕业设计的技术栈是什么

前端vue

后端python的django框架

2、为什么选择用vue和django作为你的毕业设计呢

因为vue是一种比较适合当代企业开发并且一种较为简单的渐进式框架,比较容易接受

因为python非常适合初学者,可以非常简单的开发出来一个web完整,django框架是python里最适合初学者的一门框架,简单、组件丰富

3、项目有什么创新点没有

(1):融合了echarts可视化技术,可以通过echarts非常直观的了解到项目里的表结构和数据关系

(2):结合了爬虫技术,项目需要数据不用自己手动录入,可以通过爬虫一键录入

(3):多表关系,增删改查

(4):审核功能

(5):推荐功能,使用了基于用户协同过滤算法

(6):使用restful api的api风格,非常直观,简单的展现逻辑

4、前端怎么一步步找到你的vue文件

主要通过routers路由文件,在routers里,定义好每一个路由和页面关系

5、每个vue里怎么展示数据

通过element ui的可以非常简单展示数据

6、vue和django怎么融合,怎么发送请求和携带数据发送给后端

vue和django主要通过axios组件

axios.get 查看

axios.post 增加

axios.put 修改

axios.delete 删除

// 查看信息
    gethtsp(query) {
        return request({
            url: '/django_vue_lvyou/jq/',
            method: 'get',
            params: query
        });
    },
    // 修改信息
    updatehtsp(data) {
        return request({
            url: '/django_vue_lvyou/jq/' + data.id + '/',
            method: 'put',
            data: data
        });
    },
    // 删除信息
    deletehtsp(data) {
        return request({
            url: '/django_vue_lvyou/jq/' + data.id + '/',
            method: 'delete',
            data: data
        });
    },
    // 创建信息
    createhtsp(data) {
        return request({
            url: '/django_vue_lvyou/jq/',
            method: 'post',
            data: data
        });
    },

7、vue发送给django,django怎么接收数据

django数据接收有一定的逻辑,主要通过manage.py->settings.py->urls(总路由)->urls(子路由)->views

这里的views就是最后视图文件

path('jq/', views.Jqview.as_view()),
re_path('jq/(?P<pk>\d+)/', views.Jqdetailview.as_view()),
class Jqview(APIView):
    # 单个禁用 token 验证
    authentication_classes = []
    def get(self, request):

class Jqdetailview(APIView):
    authentication_classes = []

    def get(self, request, pk):

class 里的 get post put delete 函数会拿到前端数据

8、django怎么增删改查数据

django增删改查数据主要是通过orm,orm是一个数据库插件,我们可以不用写原声sql语句就可以简单,高效,安全的书写增删改查语句

students_data = Jingqu.objects.all()

Jingqu.objects.filter(pk=sp_id).update(is_shenhe="已审核")

Jingqu.objects.get(pk=pk).delete()

9、django怎么把数据给前端

return Response(data={'code': 200, 'message': '删除成功'})

10、项目有认证

有token校验,访问接口带 token

class TokenAuthtication(BaseAuthentication):
    def authenticate(self, request):
        """
        先获取 header 中的token进行解析,在进行校验
            - 获取token,检查过期时间是否大于当前时间
        :param request:
        :return:
        """
        try:
            # 先从前端的 headers 里拿到当前登录用户 token
            token = request.headers.get("Ac-Token")
            # 通过 jwt 反解过期和验证信息
            data = jwt.decode(token, settings.SECRET_KEY, 'HS256')

            # 如果时间过期 需要重新登陆
            if data["exp"] < int(time.time()):
                raise exceptions.AuthenticationFailed("登录超时,请重新登录")
            # 如果时间没过期 需要判断一下存在 token 角色id是否存在于 Guanli Tearcher Student 三张数据库表里 如果三张表里都没有用户名 报错
            elif (Guanli.objects.filter(username=data["username"]).count() == 0 and
                  Goumai.objects.filter(username=data["username"]).count() == 0 and
                  Chushou.objects.filter(username=data["username"]).count() == 0):
                raise exceptions.AuthenticationFailed("认证用户不存在")

        except Exception as error:
            print(error)
            raise exceptions.AuthenticationFailed("用户未登录,请登录")