1、在settings.py中配置MEDIA_URL和MEDIA_ROOT
[root@localhost blogproject]#
[root@localhost blogproject]# vim blogproject/settings.py
MEDIA_URL = '/uploads/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
2、urls.py中配置路由
django1.9及以下
url(r"^uploads/(?P<path>.*)$", \
"django.views.static.serve", \
{"document_root": settings.MEDIA_ROOT,}),
djaggo1.10及以上
from django.conf.urls.static import static
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$',index,name='index'),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
3、在model中设置图片的上传位置和路径
[root@localhost kindeditor-4.1.10]# cd /root/blogenv/blog_env/blogproject/static/js/kindeditor-4.1.10
[root@localhost kindeditor-4.1.10]# vim config.js
KindEditor.ready(function(K) {
window.editor = K.create('#id_content',
{
width : '900px',
height : '300px',
uploadJson: '/admin/upload/kindeditor',
}
);});
urls配置:
from django.conf.urls import url
from django.contrib import admin
from blog.views import *
from django.conf import settings
from blog.upload import upload_image
from django.conf.urls.static import static
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$',index,name='index'),
url(r'^admin/upload/(?P<dir_name>[^/]+)$', upload_image, name='upload_image'),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
代码
[root@localhost blogproject]# vim blog/upload.py
# -*- coding: utf-8 -*- from django.http import HttpResponse from django.conf import settings from django.views.decorators.csrf import csrf_exempt import os import uuid import json import datetime as dt @csrf_exempt def upload_image(request, dir_name): ################## # kindeditor图片上传返回数据格式说明: # {"error": 1, "message": "出错信息"} # {"error": 0, "url": "图片地址"} ################## result = {"error": 1, "message": "上传出错"} files = request.FILES.get("imgFile", None) if files: result =image_upload(files, dir_name) return HttpResponse(json.dumps(result), content_type="application/json") #目录创建 def upload_generation_dir(dir_name): today = dt.datetime.today() dir_name = dir_name + '/%d/%d/' %(today.year,today.month) if not os.path.exists(settings.MEDIA_ROOT + dir_name): os.makedirs(settings.MEDIA_ROOT + dir_name) return dir_name # 图片上传 def image_upload(files, dir_name): #允许上传文件类型 allow_suffix =['jpg', 'png', 'jpeg', 'gif', 'bmp'] file_suffix = files.name.split(".")[-1] if file_suffix not in allow_suffix: return {"error": 1, "message": "图片格式不正确"} relative_path_file = upload_generation_dir(dir_name) path=os.path.join(settings.MEDIA_ROOT, relative_path_file) if not os.path.exists(path): #如果目录不存在创建目录 os.makedirs(path) file_name=str(uuid.uuid1())+"."+file_suffix path_file=os.path.join(path, file_name) file_url = settings.MEDIA_URL + relative_path_file + file_name open(path_file, 'wb').write(files.file.read()) # 保存图片 return {"error": 0, "url": file_url}
相关推荐
在本项目"Django-Blog:使用Django制作博客"中,我们将探讨如何利用Python的Web框架Django构建一个功能完备的个人或企业博客系统。Django以其“快速、易用且强大”的特性深受开发者喜爱,它能够帮助我们高效地开发...
`django-summernote` 适用于需要用户输入格式化文本的场合,比如博客平台、CMS(内容管理系统)、论坛、在线教育平台等。它极大地提升了用户体验,使得非技术人员也能轻松编辑网站内容。 总的来说,`django-...
Django管理静态文件(如CSS、JavaScript、图片等)和用户上传的媒体文件。在生产环境中,这些文件通常会被单独配置以提高性能。 10. **部署与服务器配置** 最后,将Django-Blog部署到生产环境,可能涉及到WSGI...
CKEditor 5是一款强大的Web文本编辑器,提供丰富的文本格式化选项,如字体、颜色、样式、图片上传等,常用于网页内容编辑界面,让非技术用户也能轻松创建和编辑HTML内容。 **Django框架** Django是一个高级的、...
2. **图片和文件上传**:用户可以直接在编辑器中上传图片和文件,并能够对它们进行管理和引用。 3. **媒体库管理**:提供一个媒体库界面,用于查看和管理已上传的图片和文件,便于在多个地方重复使用。 4. **HTML ...
- 图片上传和管理 - 链接插入和管理 - 代码编辑模式 - 多语言支持 - 插件扩展 - 响应式设计 通过`django-froala-editor`,这些功能可以直接无缝地融入到Django项目中。 **应用场景** 这个库广泛适用于需要用户...
`django-user-media`适用于任何需要处理用户上传文件的Django应用,比如社交媒体平台、博客系统、电子商务网站或者内部文件分享平台。通过使用这个库,开发者可以专注于业务逻辑,而不必花费大量时间在文件管理和...
5. **图片上传**:集成图片上传功能,允许用户在Markdown文本中嵌入图片,并自动处理存储和URL生成。 6. **配置灵活**:允许开发者根据项目需求调整各种设置,如默认样式、上传路径等。 **使用场景** django-...
- **社交网络**:记录并展示用户动态,如发表状态、上传照片等。 - **博客平台**:追踪文章的点赞、评论等互动行为。 - **电商应用**:记录用户的购买、收藏、评价等行为。 - **协作工具**:展示团队成员的更新、...
这个库的核心功能是提供一个自定义的`ImageField`,它允许开发者方便地进行图片上传、缩放、裁剪和其他图像操作,同时支持生成不同尺寸的版本,比如缩略图或预览图。这在构建需要处理大量图像的Web应用时尤其有用。 ...
【标题】"first-learn-django-blog"是一个初学者在学习Django框架时创建的博客应用练习项目。这个项目主要用于熟悉Django的基本操作和Web开发流程,使用的Python版本为3.6,而Django框架的版本是2.0.5。 【描述】...
这个应用在 Django 项目中扮演着重要角色,尤其对于那些需要处理大量文件上传和管理的场景,如博客、论坛或者文档管理系统等。`django-attachments` 提供了简洁的接口和灵活的配置选项,使得开发者能够快速集成到...
总的来说,Django Photologue是一个功能强大的图像管理工具,适合需要展示大量高质量图片的网站,如摄影博客、在线画廊或者任何需要精美呈现图像内容的平台。通过深入理解和充分利用其提供的功能,开发者能够构建出...
CKEditor4是其最新稳定版,它具有丰富的特性集,包括图片上传、代码高亮、表格编辑、链接管理等,非常适合用于博客、论坛或者内容管理系统。 **安装与配置** 1. 首先,将`django-ckeditor-master`解压,然后通过pip...
Django CMS 支持插件化,可以灵活扩展各种功能,如新闻、博客、产品目录等。 **Boilerplate** "Boilerplate" 在编程中通常指的是一个预配置的基础结构,包含了一个项目所需的基本文件和配置,旨在加速开发进程。...
Django-CoolBlog可能包含多个应用,比如`blog`,用于处理博客相关的逻辑。每个应用都有自己的模型、视图、模板和URL配置。 4. **模型(Model)** 在`blog/models.py`中,会定义博客系统所需的模型,例如`Post`...
4. **媒体管理**:由于 TinyMCE 支持插入图片和其他媒体,所以还需要理解 Django 的媒体处理机制,包括上传路径的设置、静态文件的处理,以及可能需要的第三方库如 django-filebrowser 或 django-medialibrary 来...
10. **静态文件与媒体文件**:静态文件(如CSS、JavaScript和图片)应放在`static`目录下,而用户上传的媒体文件(如文章的封面图片)则存储在`media`目录。配置`settings.py`以正确处理这些文件。 11. **部署**:...
【Python Django快速入门】系列博客项目源码是一个适合初学者的教程资源,旨在帮助学习者快速掌握Django框架的基本概念和应用。这个压缩包包含了名为"Django-Quick-Start-master"的完整项目文件,让我们来深入探讨这...
【Django-Blog-App】是一个基于Python的Web应用程序,使用了流行的Django框架来构建一个功能完善的博客系统。这个项目旨在提供一个平台,让用户能够创建、编辑和发布文章,同时支持评论、分类和标签等功能。Django因...