使用flask实现的一个简单的图片上传服务

设计初衷

对于图片的存储,有很多选择,一般采用云服务如(七牛,又拍等),但是国内的服务像七牛

自定义域名竟然需要域名备案(Excuse me,当初就是因为备案麻烦才选择国外的),而且浪费了我十块钱,

而我又想像七牛一样可以直接在本地就可以上传图片,找来找去,没有找到一个比较合适的,所以花两天时间自己写了一个

使用

由于初衷是本地脚本就可以发布,所以没有前端界面,等以后有时间了再加上

API

/api/login

POST

登录

/api/logout

GET

注销

/api/albums

GET

获取相册列表

POST

新建相册

name 相册名称

description 相册描述

/api/albums/

pk 相册ID

GET

获取相册信息

PUT

修改相册信息

name 相册名称

description 相册描述

DELETE

删除相册

/api/images

GET

获取图片列表

POST

上传图片

images 上传图片列表

album 相册ID(默认会新建一个default相册)

/api/images/

GET

获取图片信息

PUT

修改图片信息

name 图片名称

description 图片描述

DELETE

删除图片

配置

class Config(object):

DEBUG = True # 生产环境设置为False

SECRET_KEY = 'ccc' # import os;os.urandom(24)

SECRET_KEY_SALT = 'ssss'

JSON_AS_ASCII = False

PERMANENT_SESSION_LIFETIME = timedelta(days=3)

PER_PAGE = 10 # 分页

ADMIN_URL = '/admin/aaaaa' # 后台地址

LOGIN_TOKEN_HEADER = 'Api-Key' # 将会影响到后面headers设置

LOGIN_TOKEN = 'api_key' #url?api_key=21312313

MIDDLEWARE = ['storage.common.middleware.CommonMiddleware']

SQLALCHEMY_TRACK_MODIFICATIONS = False

SQLALCHEMY_DATABASE_URI = 'sqlite:///test.db'

# SQLALCHEMY_ECHO = DEBUG

UPLOAD_ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg']) # 允许上传的扩展名

UPLOAD_FOLDER_ROOT = os.path.dirname(os.path.abspath(__file__))

UPLOAD_FOLDER_PATH = 'images' # 相对于当前文件路径的地址

UPLOAD_FOLDER = os.path.join(UPLOAD_FOLDER_ROOT, UPLOAD_FOLDER_PATH)

创建账户

python manager.py create_user

将同时创建一个default的相册

python manager.py key

显示用户key

上传

上传后图片保存路径

原图路径:

UPLOAD_FOLDER + 'username' + 'photo' + %Y + %m + (时间戳+随机数).png

缩略图路径:

UPLOAD_FOLDER + 'username' + 'thumb' + %Y + %m + (时间戳+随机数).png

example

使用requests本地上传

import requests

def images():

url = 'http://127.0.0.1:8000/api/images'

files = {'images': open('desktop.png', 'rb')}

multiple_files = [

('images', ('11.png', open('11.png', 'rb'), 'image/png')),

('images', ('desktop.png', open('desktop.png', 'rb'), 'image/png'))

]

headers = {

'Api-Key':

'InhpeWFuZzA4MDdJBtx4AWlPpI_Oxx1Ki8',

'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36'

}

# r = requests.post(url, files=multiple_files, headers=headers)

r = requests.post(url, files=files, headers=headers)

print(r.text)

python自动上传图片_使用Python实现一个简单的图片上传存储服务相关推荐

  1. 用go来搭建一个简单的图片上传网站

    提前说明一下:代码参考了<Go语言编程>,稍有变动, 自己亲自玩了一遍. 之前玩过go web server, 现在来用go来搭建一个简单的图片上传网站, 工作目录是:~/photoweb ...

  2. alert()的功能_前端实现简单的图片上传小图预览功能

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  3. 一个.net6简单的图片上传(文件也可用)

    #一个.net6简单的图片上传(文件也可用) ##页面 @{ViewData["Title"] = "图片上传Demo"; }<form asp-acti ...

  4. java文件客户端下载_使用Java写一个minio的客户端上传下载文件

    标签:color   ati   tty   java   system   wired   format   media   param 前言: 确保已经安装了minio的服务端 代码: pom.x ...

  5. [ckeditor系列]ckeditor 自己写的一个简单的image上传js 运用iframe的ajax上传

    ckeditor最近修改一个上传的,原来的Image的上传插件功能很多,但是自己用,没有必要,就进行了修改,后来就改成了目前的样子,根据_samples/api_dialog.html 进行了修改,把 ...

  6. python实现自动上传图片_利用python脚本实现使用typora编写markdown时图片自动上传到chevereto图床...

    复制粘贴以下代码 #!/usr/bin/env python3 # -*- encoding: utf-8 -*- # author: guiu # data: 2020.2.28 import re ...

  7. python模拟上传图片_用python创建自己的等离子图片模拟

    python模拟上传图片 For today's recreational coding exercise, we will investigate plasma physics with parti ...

  8. python七彩同心圆_用pygame做一个简单的python小游戏---七彩同心圆

    用pygame做一个简单的python小游戏---七彩同心圆 用pygame做一个简单的python小游戏-七彩同心圆 这个小游戏原是我同学python课的课后作业,并不是很难,就简单实现了一下,顺便 ...

  9. python自动点赞_用Python模拟技巧带你实现自动抽屉登录自动点赞

    /1 前言/ 嘿,各位小伙伴们晚上好呀,今天小编又给大家带来干货内容啦,今天带来的是,如何自动登录抽屉,并且点赞! 原计划是不打算使用selenium的,但是因为要涉及点赞,所以免不了登录.但事实证明 ...

最新文章

  1. TensorRT 数据和表格示例
  2. 霍纳法树形流图中处理机p个数_处理机管理(进程管理)
  3. pytorch学习笔记(八):softmax回归的从零开始实现
  4. java中finaljava中this_Java中this,static,final,const用法详解
  5. 【NCRE】2020年9月全国计算机等级考试,计算机二级MS Office高级应用划水贴
  6. 数据分析这么做,销售看了拍手叫好
  7. Oracle数据库 查询所有表
  8. 今日头条文章评论内容爬取
  9. 【OR】约束优化:对偶理论(1)
  10. 基于 NVIDIA GPU 和 RAPIDS 加速 Spark 3.0
  11. Nginx配置文件目录实现pdf文件预览及下载
  12. Java毕设项目菜鸟驿站快递分发系统计算机(附源码+系统+数据库+LW)
  13. Vue 使用XLSX导出excel,并且设置标题背景颜色、字体、居中。并且在前端导出成excel文件
  14. 手机启动不了android,安卓手机开不了机,小编教你如何解决安卓智能手机开不了机问题...
  15. opencv2413 gpu mog2_gpu CascadeClassifier_GPU
  16. 9类人事管理场景应用,泛微协助HR释放更多工作量
  17. win8.1CPU使用率过高、卡顿、破音问题整理
  18. python三维曲面拟合_用Python拟合多项式曲面
  19. Python * ** 打包解包 详解
  20. win7 修复计算机无法进入系统,win7系统下启动修复无法正常进入系统的解决方法...

热门文章

  1. hadoot配置环境变量win_Windows 下Hadoop的环境变量配置
  2. js时间搓化为今天明天_护肤品搓泥怎么办啊啊啊啊啊......
  3. 实验6 控制结构综合程序设计 7-3 简单计算器
  4. linux mysql设置编码_linux下修改mysql编码
  5. 联想小新电脑dns服务器未响应,Lenovo Quick Fix 联想智能解决工具
  6. linux下的ssh和rynsc
  7. 剑指offer面试题27:二叉搜索树与双向链表
  8. 机器学习实战 - 读书笔记(04) - 朴素贝叶斯
  9. javascript设计模式--javascript的数据类型
  10. android 视频监控相关(打包下载)