分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

Django上传并显示图片

发布时间:2023-09-06 01:14责任编辑:蔡小小关键词:暂无标签

非常详细的教程,教大家一步步用Django上传与显示图片。用例子学习是一个不错的方法,下面我用一个非常简单的例子为大家讲解Django中图片的上传与显示。

1. 创建名称为‘a’的项目

1
$django-admin startproject a

2.在项目‘a’中创建名为‘b’的app

1
2
$cd a
$python manage.py startapp b

3.把b加入到settings.py中的INSTALLED_APPS中

1
2
3
4
5
6
7
8
9
INSTALLED_APPS = (
???‘django.contrib.admin‘,
???‘django.contrib.auth‘,
???‘django.contrib.contenttypes‘,
???‘django.contrib.sessions‘,
???‘django.contrib.messages‘,
???‘django.contrib.staticfiles‘,
???‘b‘,
)

4.在文件夹b下,编辑models.py,创建IMG类

1
2
3
4
5
from __future__ import unicode_literals
from django.db import models
# Create your models here.
class IMG(models.Model):
???img = models.ImageField(upload_to=‘upload‘)

5.更新数据库

1
2
3
4
5
6
Django 1.7及以上的版本需要用以下命令
python manage.py makemigrations
python manage.py migrate

Django 1.7以下用以下命令
python manage.py syncdb

6.在文件夹b下,编辑views.py,创建图片上传与显示函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from django.shortcuts import render
from b.models import IMG
# Create your views here.
def uploadImg(request):
???if request.method == ‘POST‘:
???????new_img = IMG(
???????????img=request.FILES.get(‘img‘)
???????)
???????new_img.save()
???return render(request, ‘b/uploadimg.html‘)

def showImg(request):
???imgs = IMG.objects.all()
???content = {
???????‘imgs‘:imgs,
???}
???return render(request, ‘b/showimg.html‘, content)

7.在a文件夹下,编辑urls.py文件

1
2
3
4
5
6
7
8
9
10
11
12
from django.conf.urls import url
from django.contrib import admin
from b import views
from django.conf.urls.static import static
from django.conf import settings


urlpatterns = [
???url(r‘^admin/‘, admin.site.urls),
???url(r‘^upload‘, ‘b.views.uploadImg‘),
???url(r‘^show‘, ‘b.views.showImg‘),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

8.编辑a文件夹下的setting.py文件,添加如下代码:主要的作用是配置上传文件的根路径

1
2
MEDIA_URL = ‘/media/‘ ?URL的映射,前后要加上‘/’ 表示从根目录开始,比如“/site_media/”,加上这个属性之后,静态文件的链接前面会加上这个值可以随便写但不能不写
MEDIA_ROOT = os.path.join(BASE_DIR, ‘media‘).replace(‘\\‘, ‘/‘) 文件上传的根路径

9.在b文件夹下创建templates文件夹,再在templates文件夹下创建b文件夹,再在新创建的b文件夹下创建uploadimg.html文件,内容如下:

1
2
3
4
5
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="img">
<button type="submit">上传</button>
</form>

10.在uploadimg.html同目录下创建showimg.html文件

1
2
3
{% for img in imgs %}
<img src=‘{{ img.img.url }}‘ />
{% endfor %}

11.运行django程序

1
$python manage.py runserver

12.上传图片

打开浏览器,输入地址:http://127.0.0.1:8000/upload,进入图片上传页面,点击“浏览”,选择要上传的图片,“上传”之。因为页面设计的比较简单,所以大家上传图片后,在本页面看不到任何变化,但确实已经上传了;

13.显示上传的图片

在浏览器中输入:http://127.0.0.1:8000/show,就会看到我们已经上传的图片。

PS:以上步骤仅仅是非常简单的图片上传与显示,更多复杂的图片上传显示问题,大家可以在次基础上修改。

原创文章如转载,请注明本文链接:http://www.cognize.me/2016/05/09/djangopic

Django上传并显示图片

原文地址:http://www.cnblogs.com/antflow/p/7611793.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved