心法

  1. 对于一个合格的后端程序员来说,永远不要相信前端发来的数据!验证是必须要有的!

    环境

    1. pip install --no-deps -r requirements.txt
    ```

    不能安装依赖!

    pip install —no-deps -r requirements.txt

    django~=2.2 pytz==2022.1 sqlparse==0.4.2 msqlclient==2.1.0

Django插件

django-formtools==2.3 django-import-export==2.0 django-reversion==5.0.0 django-crispy-forms-1.14.0

无依赖者

asgiref==3.5.0 backports.zoneinfo==0.2.1 diff-match-patch==20200713 tablib==3.2.1 tzdata==2022.1 future==0.18.2 six==1.16.0 xlwt==1.3.0 XlsxWriter==3.0.3 Pillow==9.1.0

依赖

httplib2==0.20.4 pyparsing==3.0.8

requests家族

certifi==2021.10.8 charset-normalizer==2.0.12 idna==3.3 requests==2.27.1 urllib3==1.26.9

  1. ```bash
  2. asgiref==3.5.0
  3. backports.zoneinfo==0.2.1
  4. certifi==2021.10.8
  5. charset-normalizer==2.0.12
  6. defusedxml==0.7.1
  7. diff-match-patch==20200713
  8. Django==2.2.28
  9. django-crispy-forms==1.14.0
  10. django-formtools==2.3
  11. django-import-export==2.0
  12. django-pure-pagination==0.3.0
  13. django-ranged-response==0.2.0
  14. django-reversion==5.0.0
  15. django-simple-captcha==0.5.17
  16. et-xmlfile==1.1.0
  17. future==0.18.2
  18. httplib2==0.20.4
  19. idna==3.3
  20. MarkupPy==1.14
  21. mysqlclient==2.1.0
  22. odfpy==1.4.1
  23. openpyxl==3.0.9
  24. Pillow==9.1.0
  25. pyparsing==3.0.8
  26. pytz==2022.1
  27. PyYAML==6.0
  28. redis==3.2.1
  29. requests==2.27.1
  30. six==1.16.0
  31. sqlparse==0.4.2
  32. tablib==3.2.1
  33. tzdata==2022.1
  34. urllib3==1.26.9
  35. xlrd==2.0.1
  36. XlsxWriter==3.0.3
  37. xlwt==1.3.0

url配置

  1. path('login/', TemplateView.as_view(template_name='login.html')), # 可以适配login和login/
  2. path('login', TemplateView.as_view(template_name='login.html')), # 只能适配login

前端知识

ajax

  • ajax的特点:提交之后页面是不会刷新的!!!!即使有错也不刷新!!!
  • ajax排错思路:F12看Network中的数据

    视频播放

    video.js

Videojs官方文档
videojs中文文档详解

表单

如果要提交文件,必须在表单中指明enctype="multipart/form-data"

  1. <form class="clearfix" id="jsAvatarForm" enctype="multipart/form-data" autocomplete="off" method="post" action="/users/image/upload/" target='frameFile'>
  2. <label class="changearea" for="avatarUp">
  3. <span id="avatardiv" class="pic">
  4. <img width="100" height="100" class="js-img-show" id="avatarShow" src="../media/image/2016/12/default_big_14.png"/>
  5. </span>
  6. <span class="fl upload-inp-box" style="margin-left:70px;">
  7. <span class="button btn-green btn-w100" id="jsAvatarBtn">修改头像</span>
  8. <input type="file" name="image" id="avatarUp" class="js-img-up"/>
  9. </span>
  10. </label>
  11. </form>

在后端中,接受文件需要用request.FILES这个字典