心法
- 对于一个合格的后端程序员来说,永远不要相信前端发来的数据!验证是必须要有的!
环境
```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
```bashasgiref==3.5.0backports.zoneinfo==0.2.1certifi==2021.10.8charset-normalizer==2.0.12defusedxml==0.7.1diff-match-patch==20200713Django==2.2.28django-crispy-forms==1.14.0django-formtools==2.3django-import-export==2.0django-pure-pagination==0.3.0django-ranged-response==0.2.0django-reversion==5.0.0django-simple-captcha==0.5.17et-xmlfile==1.1.0future==0.18.2httplib2==0.20.4idna==3.3MarkupPy==1.14mysqlclient==2.1.0odfpy==1.4.1openpyxl==3.0.9Pillow==9.1.0pyparsing==3.0.8pytz==2022.1PyYAML==6.0redis==3.2.1requests==2.27.1six==1.16.0sqlparse==0.4.2tablib==3.2.1tzdata==2022.1urllib3==1.26.9xlrd==2.0.1XlsxWriter==3.0.3xlwt==1.3.0
url配置
path('login/', TemplateView.as_view(template_name='login.html')), # 可以适配login和login/path('login', TemplateView.as_view(template_name='login.html')), # 只能适配login
前端知识
ajax
表单
如果要提交文件,必须在表单中指明enctype="multipart/form-data"。
<form class="clearfix" id="jsAvatarForm" enctype="multipart/form-data" autocomplete="off" method="post" action="/users/image/upload/" target='frameFile'><label class="changearea" for="avatarUp"><span id="avatardiv" class="pic"><img width="100" height="100" class="js-img-show" id="avatarShow" src="../media/image/2016/12/default_big_14.png"/></span><span class="fl upload-inp-box" style="margin-left:70px;"><span class="button btn-green btn-w100" id="jsAvatarBtn">修改头像</span><input type="file" name="image" id="avatarUp" class="js-img-up"/></span></label></form>
在后端中,接受文件需要用request.FILES这个字典
