知识积累

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解释器

缺点:不要无限制创建虚拟环境,消耗内存
	  会拖硬件/ 软件
posted @ 2019-11-25 19:33  black__star  阅读(99)  评论(0编辑  收藏  举报