Django上传并显示图片
非常详细的教程,教大家一步步用Django上传与显示图片。用例子学习是一个不错的方法,下面我用一个非常简单的例子为大家讲解Django中图片的上传与显示。
1. 创建名称为‘a’的项目
1 |
$django-admin startproject a |
2.在项目‘a’中创建名为‘b’的app
12 |
$cd a$python manage.py startapp b |
3.把b加入到settings.py中的INSTALLED_APPS中
123456789 |
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类
12345 |
from __future__ import unicode_literalsfrom django.db import models# Create your models here.class IMG(models.Model): img = models.ImageField(upload_to=‘upload‘) |
5.更新数据库
123456 |
Django 1.7及以上的版本需要用以下命令python manage.py makemigrationspython manage.py migrate Django 1.7以下用以下命令python manage.py syncdb |
6.在文件夹b下,编辑views.py,创建图片上传与显示函数
1234567891011121314151617 |
from django.shortcuts import renderfrom 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文件
123456789101112 |
from django.conf.urls import urlfrom django.contrib import adminfrom b import viewsfrom django.conf.urls.static import staticfrom 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文件,添加如下代码:
12 |
MEDIA_URL = ‘/media/‘MEDIA_ROOT = os.path.join(BASE_DIR, ‘media‘).replace(‘\\‘, ‘/‘) |
9.在b文件夹下创建templates文件夹,再在templates文件夹下创建b文件夹,再在新创建的b文件夹下创建uploadimg.html文件,内容如下:
12345 |
<form method="POST" enctype="multipart/form-data">{% csrf_token %}<input type="file" name="img"><button type="submit">上传</button></form> |
10.在uploadimg.html同目录下创建showimg.html文件
123 |
{% 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
时间: 2024-10-08 23:36:06