def schemaName_file_upload(request): if request.method in ["POST", "GET"]: msg = {"code": normal_code, "msg": "成功", "data": {}} file = request.FILES.get("file") if file: filename = file.name filesuffix = filename.split(".")[-1] file_name = "{}.{}".format(int(float(time.time()) * 1000), filesuffix) filePath = os.path.join(os.getcwd(), "templates/front", file_name) print("filePath===========>", filePath) with open(filePath, 'wb+') as destination: for chunk in file.chunks(): destination.write(chunk) msg["file"] = file_name req_dict = request.session.get("req_dict") type1 = req_dict.get("type", 0) print("type1=======>",type1) type1 = int(type1) if type1 == 1: params = {"name":"faceFile","value": file_name} config.createbyreq(config, config, params) if '是' in hasHadoop or 'spark' in hasHadoop: try: client = Client("http://127.0.0.1:50070/") client.upload(hdfs_path=f'/{file_name}', local_path=filePath, chunk_size=2 << 19, overwrite=True) except Exception as e: print(f"hdfs upload error : {e}") return JsonResponse(msg)具体注释
时间: 2024-02-14 08:24:18 浏览: 133
这段代码定义了一个视图函数 `schemaName_file_upload`,用于处理上传文件的请求。如果请求的方法是 POST 或 GET,就会返回一个 JSON 格式的响应,其中包含一个 code 码、一个 msg 信息以及一个 data 数据字段。
在函数中,首先获取上传的文件对象,然后获取文件名和文件后缀。接着,生成一个新的文件名,新文件名由当前时间戳与文件后缀组成。然后,将新文件名与当前工作目录拼接成文件路径,最后将上传的文件写入到该路径下。
如果上传的文件类型为人脸识别类型,就会创建一个新的配置文件,将文件名加入到配置文件中。如果系统中存在 Hadoop 或 Spark 等大数据处理框架,就会将文件上传至 HDFS 文件系统中。
最后,返回一个 JSON 格式的响应,其中包含上传成功或失败的信息以及上传的文件名。
相关问题
admin.site.site_title = schemaName # 设置页面标题 admin.site.site_header = schemaName # 设置网站页头 admin.site.index_title = schemaName # 设置首页标语 allModels = apps.get_app_config('main').get_models() for ind, model in enumerate(allModels): class modelsite(admin.ModelAdmin): list_display = [] for col in model._meta.fields: list_display.append(col.name) search_fields = list_display admin.site.register(model, modelsite)
这是一段Django代码,主要用于动态注册所有在main应用中定义的模型(Model)。首先,通过apps.get_app_config('main').get_models()获取main应用中的所有模型,即Model类。然后通过循环遍历每个模型,为其定义一个ModelAdmin类,并将其注册到Django自带的后台管理中。其中,list_display属性用于定义在后台管理页面中显示的字段,该属性值为一个列表,包含了模型中所有字段的名称。search_fields属性用于定义在后台管理页面中搜索的字段,该属性值同样为一个列表,包含了模型中所有字段的名称。最后通过admin.site.register(model, modelsite)将该模型和ModelAdmin类注册到后台管理中,从而实现了动态注册所有模型的目的。同时,前三行代码分别设置了后台管理页面的标题、页头和首页标语,这些属性值可以根据实际情况进行修改。
schemaName: readwrite_splitting_db # dataSources: write_ds: url: jdbc:mysql://124.70.70.7:5132/mydbtest?serverTimezone=UTC&useSSL=false username: root password: MyNewPass513122! connectionTimeoutMilliseconds: 30000 idleTimeoutMilliseconds: 60000 maxLifetimeMilliseconds: 1800000 maxPoolSize: 50 minPoolSize: 1 read_ds_0: url: jdbc:mysql://124.70.70.7:5232/mydbtest?serverTimezone=UTC&useSSL=false username: root password: MyNewPass513122! connectionTimeoutMilliseconds: 30000 idleTimeoutMilliseconds: 60000 maxLifetimeMilliseconds: 1800000 maxPoolSize: 50 minPoolSize: 1 # read_ds_1: # url: jdbc:mysql://127.0.0.1:3306/demo_read_ds_1?serverTimezone=UTC&useSSL=false # username: root # password: # connectionTimeoutMilliseconds: 30000 # idleTimeoutMilliseconds: 60000 # maxLifetimeMilliseconds: 1800000 # maxPoolSize: 50 # minPoolSize: 1 # rules: - !READWRITE_SPLITTING dataSources: pr_ds: writeDataSourceName: write_ds readDataSourceNames: - read_ds_0
这个 Yaml 配置文件是一个 ShardingSphere-Proxy 的配置文件,它定义了一个名为 readwrite_splitting_db 的数据库,其中包含一个写数据源 write_ds 和一个只读数据源 read_ds_0。同时,它定义了一个读写分离规则,将写请求路由到写数据源 write_ds,将读请求随机路由到只读数据源 read_ds_0。需要注意的是,这个 Yaml 配置只是一个示例,实际使用时需要根据情况进行修改。
阅读全文