当前位置: 首页 > wzjs >正文

python可以做网站企业网站建设方案详细方案

python可以做网站,企业网站建设方案详细方案,在青岛做阿里巴巴网站找谁,建网站seo大家好,我是Petter Guo 对Coding充满热情的🐂🐎,坚信实操出真知。在这里,你将听到最真实的经验分享,绝不贩卖焦虑,只提供积极向上的硬核干货,助你一路前行! 如果对你有帮助, 请点赞…

大家好,我是Petter Guo

对Coding充满热情的🐂🐎,坚信实操出真知。在这里,你将听到最真实的经验分享,绝不贩卖焦虑,只提供积极向上的硬核干货,助你一路前行!

如果对你有帮助, 请点赞+关注鼓励下, 🌹🌹

无论你是前端还是后端, 负责的业务是ToB还是ToC, 一直无法避开文件上传,图片上传…

下面就来操作下吧

本节知识点

  • Flask框架应用
  • 阿里OSS配置
  • 请求类型全解
  • postman 实操
  • 课后习题

准备

# Flask框架
pip install Flask
# oss2-阿里OSS
pip install oss2, python-dotenv

具体架构设计可以参考上一篇第一个Web应用

  • 引入相关的包(app/route/admin/app/route/admin/ossUpload)
# 生成唯一文件名
import uuid
from flask import Blueprint, request
# 读取本地环境变量
import os
import oss2
from app.utils.response import success_response, error_response
  • 配置OSS

登录阿里控制台, 找到对象存储进行创建, 选择指定区域就可以了
创建buckets

这里直接选用raw方式即可(创建之后根据存储与访问进行计费, 文件少不用缴费)

  • 创建access_key

RAM访问创建

创建成功后, 复制下来, 存储到本地env文件中, 一定要保护该密钥

  • 密钥获取
access_key_id = os.getenv("ALI_OSS_KEY")
access_key_secret = os.getenv("ALI_OSS_KEY_SECRET")
# petter-os
bucket_name = os.getenv("ALI_OSS_BUCKET")
# oss-cn-shanghai.aliyuncs.com
oss_endpoint = os.getenv("ALI_OSS_ENDPOINT")

输出api服务

@upload_bp.route('/upload', methods=['POST'])
def upload_file():# 创建认证对象auth = oss2.Auth(access_key_id, access_key_secret)# 创建 bucket 对象bucket = oss2.Bucket(auth, oss_endpoint, bucket_name)

通常的文件上传采用的都是Content-type: multipart/form-data; 其实有很多, 常用的还有Content-type: application/json; 下面简单分析这两个有什么区别:

  • 请求类型对比
特性applicaiton/jsonmultipart/form-data
主要用途传输结构化数据(对象、数组等),API 通信文件上传,包含文件的表单提交,混合数据提交
文件支持不直接支持(文件需 Base64 编码,效率低)直接支持(传输二进制内容,效率高)
数据结构JSON 格式的字符串,支持深层嵌套多部分数据,每部分有独立 Content-Disposition/Type
编码方式纯文本 JSON 字符串每个部分独立编码,由边界分隔
可读性对于人类和机器都易于阅读和解析较差,包含较多协议头部和边界信息
传输效率对于结构化数据传输效率高对于文件传输效率高,但整体请求体可能因边界而变大
服务器解析简单,多数语言内置 JSON 解析器复杂,需要专门的库来解析多部分数据和提取文件
  • postMan工具上传

上传成功

请求参数是 file, 根据file可以获取对应的文件

获取上传文件

  • 文件类型判断和获取
file = request.files['file']
content_type = file.mimetype if file.mimetype else 'application/octet-stream'
  • 文件名称和重新设置
original_filename = file.filename
file_extension = original_filename.rsplit('.', 1)[1].lower()
unique_filename = f"{uuid.uuid4()}.{file_extension}"
remote_file = f"mall/{unique_filename}"
  • 上传
result = bucket.put_object(remote_file, file.stream, headers={'Content-Type': content_type}
)if result.status == 200:# 成功后的URLossImageUrl = f"https://{bucket_name}.{oss_endpoint}/{remote_file}"return success_response({"imageUrl": ossImageUrl,"message": "上传成功"})

到这里, 完整的上传功能就已经ok了, 支持上传图片,CSV等多种文件

  • 问题: 防盗链是什么原理呢 ?

文章转载自:

http://inZ00L04.rzdck.cn
http://ygMq4V4i.rzdck.cn
http://KpHcFh1h.rzdck.cn
http://BBOlROqN.rzdck.cn
http://AyDLSS1Q.rzdck.cn
http://X4xUknC5.rzdck.cn
http://5b3T4tjt.rzdck.cn
http://aNIdNNsX.rzdck.cn
http://f3gJHH4o.rzdck.cn
http://SBxSLpKr.rzdck.cn
http://MlHDsckS.rzdck.cn
http://JcFh0dIz.rzdck.cn
http://3qZFR4Bz.rzdck.cn
http://zImEGnps.rzdck.cn
http://W9QVqkGO.rzdck.cn
http://HvvbfCCP.rzdck.cn
http://xzUitU7P.rzdck.cn
http://9mwSNQoU.rzdck.cn
http://cninGu8x.rzdck.cn
http://clA7TeOg.rzdck.cn
http://sUZ3vl4O.rzdck.cn
http://TngWHr98.rzdck.cn
http://OeYDvy50.rzdck.cn
http://EyYWb5xB.rzdck.cn
http://MpcVI1Bf.rzdck.cn
http://UxBU1aXT.rzdck.cn
http://r7IUFUgN.rzdck.cn
http://cnZVwuev.rzdck.cn
http://8yoZhnu9.rzdck.cn
http://sD1pvVF6.rzdck.cn
http://www.dtcms.com/wzjs/611662.html

相关文章:

  • 台州网站建设系统怎样在文章后做网站链接
  • 做网站素材网外贸公司网站设计哪家好
  • 医院网站建设招标国外flash网站模板
  • 温州网站的建设用wordpress建站难吗
  • 网站建设合同司法解释太原网站建设方案咨询
  • 建设部网站施工合同抖音自媒体平台注册
  • 海口网站设计保定网站建设求职简历
  • 电商网络营销seo排名哪家有名
  • 织梦做的网站进不去分分作网站
  • 网站脚本错误深圳互联网设计开发
  • 网文订阅做多的网站国家工商注册网
  • 网站制作合同模板建筑工程网官网入口
  • 任丘做网站wordpress是什么平台
  • 建站公司经营seo培训班
  • 怎么制作游戏短视频临沂 网站优化
  • win2012服务器做网站wordpress修改发布页面插件
  • 昆山网站建设推荐北京网站建设推广
  • 网站建设赶集网韩国优秀平面设计网站有哪些
  • 东莞网站推广宣传wordpress放音乐播放器
  • 网上提供免费主页空间的网站旅游交友的网站建设
  • 把网站内容全删掉 在重新建立会不会被k西昌网站建设
  • 牡丹江seo网站推广蜘蛛屯优化排名教育培训网络推广培训
  • 网站开发的软 硬件环境标准cdn网站加速 免备案
  • 张家港网站设计优化在百度上做广告推广要多少钱
  • 深圳做网站 肖先生东莞网站建设 南城石佳
  • Django 个人博客网站开发wordpress弄个人博客好
  • 临沭有做网站的吗免费app制作软件下载
  • 重庆网站建设冒号商务网站建设摘要
  • 买了网站 怎么做呢昆山住房和城乡建设部网站
  • 外贸网站怎样做推广互联网公司薪酬体系