Django--纯净项目、多应用、媒体资源

Django小专题

1.纯净版的Django项目

创建Django项目时,内置很多的组件,会生成很多的表。

纯净版就是指 不需要很多的内置组件 的 Django项目。

方法:在创建项目后,在settings中,把installed_apps中的 无关的app,直接注释。

注意:去除响应的组件后,要注意其他地方有是否在使用。 eg: 在urls中,默认是有 admin组件的路由匹配。

2.多app应用

crm
    -apps
    	-app01
        -app02
        -app03
	-crm
    -manange.py

3.关于上传和媒体资源

  • 静态资源

    静态、固定写好的资源,存放在【static】目录下。eg:css、js、image

  • 媒体资源

    用户上传的文件,存放在【media】目录下的。

# media配置
  该配置可以让用户上传的所有文件都固定存放在某一个指定的文件夹下
    
  # 配置用户上传的文件存储位置   会自动创建多级目录
  MEDIA_ROOT = os.path.join(BASE_DIR,'media')  # 文件名 随你 自己
  
  # 配置media的令牌路径  (与开放资源访问路径无关,只是模板语法的令牌)
  MEDIA_URL = '/media/'  # html 就是可以使用模板语法

  eg:  {{MEDIA_URL}}  = '127.0.0.1/media/'
     <a href="{{ MEDIA_URL }}avatars/222.jpg">查看media目录下的一张图片</a>


# 如何开设后端指定文件夹资源
首先你需要自己去urls.py书写固定的代码
from django.views.static import serve
from BBS14 import settings

# 开放资源访问路径url
url(r'^media/(?P<path>.*)',serve,{'document_root':settings.MEDIA_ROOT})   # 匹配路由,处理函数,给函数传参

4.导入表格批量创建数据

view.py

# Create your tests here.
def multi_create(request):
    ### 需求:根据上传的excel文件,分析表格数据,批量存储到mysql
    
    # 1.下载excel文件到服务器
    emp_excel = request.FILES.get("emp_excel")
    print(emp_excel)       # file为期末题目(陕西联通).xlsx
    print(emp_excel.name)  # "期末题目(陕西联通).xlsx"
    # 下载文件
    with open("files/"+emp_excel.name,"wb") as f:
        for line in emp_excel:
            f.write(line)


    # 2.读取excel,批量导入到mysql中

    import os
    from openpyxl import load_workbook
    file_path = os.path.join("files",emp_excel.name)

    # 2.1 加载某一个excel文件
    wb = load_workbook(file_path)
    
    # 2.2 获取sheet对象
    # print("wb.sheetnames", wb.sheetnames)
    worksheet = wb.worksheets[0]  # 就是excel表中的 不同页签的sheet表  eg:sheet1 sheet2

    # 2.3 循环读取每行数据,并保存到数据库
    employee_list = []
    for row in worksheet.iter_rows(min_row=3):  # min_row:从第几行开始读 默认为1  去除表头和标题字段
        print(row)
        if row[0].value == None:
            break
            
        employee_obj = models.Employee(name=row[0].value,
                                age=row[1].value,
                                ruzhi_date=row[2].value,
                                dep=row[3].value,
                                salary=row[4].value,)
        employee_list.append(employee_obj)
        
    Employee.objects.bulk_create(employee_list)
    return redirect("/index/")
posted @   Edmond辉仔  阅读(96)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
历史上的今天:
2022-05-24 WX06--功能开发--动态发布页、首页、动态详情页02
点击右上角即可分享
微信分享提示