Vue 和 Django 前后端分离实践 (注册功能)

1. Vue 和 Django 前后端分离实践 (注册功能)

  • 注册页面
    Vue 和 Django 前后端分离实践 (注册功能)_第1张图片

  • 应用层
    Vue 和 Django 前后端分离实践 (注册功能)_第2张图片

  • 控制层
    Vue 和 Django 前后端分离实践 (注册功能)_第3张图片

  • 数据层(用户添加)
    Vue 和 Django 前后端分离实践 (注册功能)_第4张图片

  • 数据库(是否添加至数据库)

2. 注册列表获取数据库数据

  • 后台接口(获取用户列表)
  • 前端显示

3. 问题

3.1 https;http协议问题,
  • 安装模块 django-sslserver

pip install django-sslserver

  • 在setting.py 文件添加两处配置
    Vue 和 Django 前后端分离实践 (注册功能)_第5张图片
    Vue 和 Django 前后端分离实践 (注册功能)_第6张图片

  • 使用注意 SECURE_SSL_REDIRECT

    • 当SECURE_SSL_REDIRECT = False时,http请求无响应,https请求能正确访问。
    • 当SECURE_SSL_REDIRECT = True时,http请求会重 定向https,此时django支持https,可正确访问。
  • 生成证书命令

python manage.py runsslserver

  • 运行命令后出现如此信息

Using SSL certificate: /Users/xx/Desktop/Django-test/venv/lib/python3.10/site-packages/sslserver/certs/development.crt
Using SSL key: /Users/xx/Desktop/Django-test/venv/lib/python3.10/site-packages/sslserver/certs/development.key

–cert 指定使用的证书
–key 指定使用的密钥

  • 再次启动Django

python manage.py runsslserver --certificate /Users/cqa/Desktop/Django-test/venv/lib/python3.10/site-packages/sslserver/certs/development.crt --key /Users/cqa/Desktop/Django-test/venv/lib/python3.10/site-packages/sslserver/certs/development.key

3.2 crsf认证问题

  • 目前的方法是直接注释掉 crsf部分的配置
    Vue 和 Django 前后端分离实践 (注册功能)_第7张图片

3.3 Django获取数据库 的内容 的类型问题

  • 背景与目的

原本想使用Django 从数据库捞取 用户列表的所有数据,并返回给前端

  • 使用Django 获取mysql数据时,是这样子的
    Vue 和 Django 前后端分离实践 (注册功能)_第8张图片
  • 需要注意reg 变量的数据类型问题,Django获取mysql后返回的是QuerySet类型,可能需要将其转为json格式或者需要的其他类型数据,
  • 若转为json ,有两种办法
    • serializers.serialize(“json”,QuerySet
    • json.dumps(QuerySet)

3.4 Django本地运行可以,但无法通过外部访问

  • 配置setting.py,允许人意地址访问
    Vue 和 Django 前后端分离实践 (注册功能)_第9张图片
  • 重新运行Django ,运行命令时加入 0.0.0.0:8000
    Vue 和 Django 前后端分离实践 (注册功能)_第10张图片

3.5 Django 接口数据正常获取,但vue前端 table数据无法正常显示

  • 造成问题的原因是因为 this指向问题,funtion普通函数中this指向window: 所以如果需要在function函数中使用this对象,需要事先把this对象赋值给其他变量
    Vue 和 Django 前后端分离实践 (注册功能)_第11张图片

你可能感兴趣的:(——P,y,t,h,o,n,python,django)