Implementieren Sie einen einfachen Dienst zum Hochladen und Speichern von Bildern mit Python

高洛峰
Freigeben: 2017-03-16 15:51:50
Original
2685 Leute haben es durchsucht

GitHub-Adresse: https://github.com/honmaple/maple-file

Ein einfacher BildUploadDienst implementiert mit Flask

Ursprüngliche Designabsicht

Für die Speicherung von Bildern gibt es Es gibt viele Möglichkeiten, im Allgemeinen werden Cloud-Dienste wie (Qiniu, Youpai usw.) verwendet, aber inländische Dienste wie Qiniu
Benutzerdefinierte Domainnamen erfordern tatsächlich eine Domainnamenregistrierung (Entschuldigung, das war es (ursprünglich wegen der Schwierigkeiten bei der Registrierung) und es hat mich zehn Dollar verschwendet,

und ich wollte wie Qiniu Bilder direkt vor Ort hochladen können. Ich habe mich umgesehen und konnte keins finden war besser geeignet, also habe ich ein

mit

geschrieben, weil die ursprüngliche Absicht darin bestand, lokale Skripte zu veröffentlichen, daher werde ich keine Front-End-Schnittstelle hinzufügen

wenn ich Zeit habe

  • /api/login

    • POST

      登录
      Nach dem Login kopieren
  • /api/logout

    • GET

      注销
      Nach dem Login kopieren
  • /api/albums

    • Name des Albums

    • Beschreibung des Albums

    • GET
      Albumliste abrufen

    • POST
      Neues Album erstellen

  • /api/albums/

    pk Album-ID

    • Name Albumname

    • Beschreibung Albumbeschreibung

    • GET
      Albuminformationen abrufen

    • PUT
      Albuminformationen ändern

    • LÖSCHEN
      LÖSCHENAlbum

  • /api/images

    • Bilder Bilderliste hochladen

    • Album-Album-ID (Standardmäßig wird ein neues Standardalbum erstellt)

    • GET
      Bilderliste abrufen

    • POST
      Bilder hochladen

  • /api/images/

    • Name Bildname

    • Beschreibung Bild Beschreibung

    • GET
      Bildinformationen abrufen

    • PUT
      Bildinformationen ändern

    • LÖSCHEN
      Bild löschen

Konfiguration

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)
Nach dem Login kopieren

Konto erstellen

python manager.py create_user
Nach dem Login kopieren

erstellt gleichzeitig ein Standard-Fotoalbum

python manager.py key
Nach dem Login kopieren

zeigt den Benutzerschlüssel an

Hochladen

Speicherpfad für hochgeladene Bilder

  • Originalbildpfad:

    UPLOAD_FOLDER + 'username' + 'photo' + %Y + %m + (时间戳+随机数).png
    Nach dem Login kopieren
  • MiniaturansichtPfad:

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

Beispiel

Verwenden Sie AnfragenLokales Hochladen

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)
Nach dem Login kopieren

                                                                                                                                

Das obige ist der detaillierte Inhalt vonImplementieren Sie einen einfachen Dienst zum Hochladen und Speichern von Bildern mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage