Django 中客户端图像缩放和旋转
有时,我们可能需要旋转或缩放图像。在这种情况下,客户端图像缩放库用于在 html 文件中添加 jquery 的缩放旋转功能。我们只需要在 html 文件中加载 jquery js 和 css。
创建一个 Django 项目和一个应用程序。设置 **urls** 并执行一些基本操作,例如在 **INSTALLED_APPS** 中添加应用程序。
安装 **django-client-side-image-cropping** 库
pip install django-client-side-image-cropping
现在在 **settings.py** 中,添加以下行:
INSTALLED_APPS+=['client_side_image_cropping']
在这里,我们简单地将一个模块添加为应用程序。
示例
在 **models.py** 中,添加以下几行:
from django.db import models # Create your models here. class Data(models.Model): image=models.ImageField(upload_to ='myimages/')
在这里,我们设置了具有图像字段的模型。
在 **settings.py** 中设置媒体根目录。
在 **urls.py** 中,添加以下几行:
from django.urls import path from . import views from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('', views.home,name="home"), ] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_RO OT)
在这里,我们完成了基本的 **media url** 设置,您肯定知道。
现在在 **views.py** 中,添加以下内容:
from django.shortcuts import render from django import forms from .models import Data from client_side_image_cropping import ClientsideCroppingWidget # Create your views here. class DataForm(forms.ModelForm): class Meta: model=Data fields="__all__" widgets = { 'image': ClientsideCroppingWidget( width=400, height=600, preview_width=100, preview_height=150, ) } def home(request): if request.method =="POST": form=DataForm(request.POST,request.FILES) if form.is_valid(): form.save() form=DataForm() return render(request,'home.html',{"form":form})
在这里,我们创建了一个简单的表单。这是一个模型表单,因此在其图像字段上,我们添加了一个裁剪小部件。
在 **home.html** 中,添加以下内容:
{% load static %} {% load cropping %} {% load thumbnail %} <!DOCTYPE html> <html> <head> <title> TUT </title> <link rel="stylesheet" href="{% static "client_side_i mage_cropping/cropping.css" %}"></script> <link rel="stylesheet" href="{% static "client_side_i mage_cropping/cropping_widget.css" %}"></script> <script src="https://ajax.googleapis.com/ajax/libs/jq uery/1.12.4/jquery.min.js"></script> <script src="{% static "client_side_image_cropping/cr oppie.min.js" %}"></script> <script src="{% static "client_side_image_cropping/cr opping_widget.js" %}"></script> </head> <body> <h2>HI</h2> {% csrf_token %} <form method="post" enctype="multipart/formdata"> {% csrf_token %} {{ form.as_p }} <input type="submit" value="Save"/> </form> </body> </html>
在前端,我们加载了一些 jQuery 和一些样式,并呈现将接收输入的表单。
现在一切都完成了。让我们检查输出。
输出
您将获得这样的界面,您可以在其中旋转和缩放照片。这不是一个非常漂亮的界面,但是您可以使用 CSS 修改它。
请注意,上传的图像可能看起来错位,因此请使用旋转功能将其设置正确。这种错位可能是由于浏览器问题造成的。
广告