from表单上传
from 上传文件:
--form表单上传文件 后端获取文件
注意:
1. method 为post
2.enctype -->from-date
3.用post 要在settings注释一个中间件csrf
eg:<form action="" method="post" enctype="multipart/form-data">
def upload(request):
# print(request.POST)
"""
django针对不同类型的数据 会帮你解析并放到不同的方法中供你调用
"""
if request.method == "POST":
print(request.FILES) # django会将文件类型的数据自动放入request.FILES里面
file_obj = request.FILES.get('myfile') # 文件对象
# print(file_obj)
# print(file_obj.name)
with open(file_obj.name,'wb') as f:
for line in file_obj:
f.write(line)
return render(request,'upload.html')
orm表格创建
orm 表关系:
多对多
一对多
一对一
换位思考 先站在一张表上面分析 然后再站在另一张分析
一对多 外键字段建在 多的那一方
多对多 多对多的外键关系需要建立第三张表来专门处理
建表:
先不要考虑外键关系 先创基表!!
# 小数总共八位 小数占两位
price=models.DecimalField(max_digits=8,decimal_places=2)
# 书跟出版社是一对多 并且书是多的一方 所以外键字段健在书表中
publish_id = models.ForeignKey(to='Publish') # to用来指代跟哪张表有关系 默认关联的就是表的主键字段
一对多外键字段 创建的时候 同步到数据中 表字段会自动加_id后缀
多对多的关系 外键字段建在任意一方都可以 但是建议你建在查询频率较高的那一方
author = models.ManyToManyField(to='Author') # django orm会自动帮你创建书籍 和作者的第三张关系表
# author这个字段是一个虚拟字段 不能在表中展示出来 仅仅只是起到一个高速orm 建第三章表的关系的作用
一对一的表关系 外键字段建在任意一方都可以 但是建议你建在查询频率较高的那一方
author_detail=models.OneToOneField(to='Author_detail') # fk + unique :外键 / 唯一性
一对一外键字段 创建的时候 同步到数据中 表字段会自动加_id后缀
伪静态:
将一个动态网页伪装成一个静态网页 以此来挺好搜索引擎SEO查询频率和搜藏力度;
搜索引擎其实就是一个也别巨大的爬虫程序
----->设计为.html 结尾
虚拟环境:
给每一个项目,装备该项目所需要的模块 不需要的模块一概不装
每创建一个虚拟环境就类似于你重新下载了一个纯净python解释器
优点:虚拟环境一台机器上可以有N多个
重新下载了一个纯净python解释器
缺点:不要无限制创建虚拟环境,消耗内存
会拖硬件/ 软件