.
├── db.sqlite3
├── manage.py
├── myImg
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-36.pyc
│   │   ├── settings.cpython-36.pyc
│   │   ├── urls.cpython-36.pyc
│   │   └── wsgi.cpython-36.pyc
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── static
│   └── media
│   ├── 1493297157_517565.jpg
│   ├── 3.png
│   └── 6.png
├── templates
│   └── myImg
│   ├── showImg.html
│   └── uploadPic.html
└── upLoadImg
├── __init__.py
├── __pycache__
│   ├── __init__.cpython-36.pyc
│   ├── admin.cpython-36.pyc
│   ├── models.cpython-36.pyc
│   └── views.cpython-36.pyc
├── admin.py
├── apps.py
├── migrations
│   ├── __init__.py
│   └── __pycache__
│   └── __init__.cpython-36.pyc
├── models.py
├── tests.py
└── views.py

这是一种简单的做法 不需要用到数据库

setting.py中需要配置3个地方

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'upLoadImg',
] TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, "templates")],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
] STATIC_URL = '/static/'
STATICFILES_DIRS=[os.path.join(BASE_DIR,'static')]
MEDIA_ROOT=os.path.join(BASE_DIR,'static/media')

urls.py

from django.contrib import admin
from django.urls import path
# from myImg.uploadPic import views
from upLoadImg import views urlpatterns = [
path('admin/', admin.site.urls),
path('uploadPic/',views.uploadPic),
path('uploadHandle',views.uploadHandle)
]

views.py

from django.shortcuts import render
from django.conf import settings
from django.http import HttpRequest,HttpResponse
import os
# Create your views here.
def uploadPic(request):
return render(request,'myImg/uploadPic.html') def uploadHandle(request):
if request.method == "POST":
f1 = request.FILES['pic1']
fname = os.path.join(settings.MEDIA_ROOT,f1.name)
with open(fname,'wb+') as pic:
for c in f1.chunks():
pic.write(c)
return HttpResponse('<img src="/static/media/%s" width="500" height="500" alt="图片无法显示"/>'%f1.name) # 这里不给width和height会按图片本身分辨率显示 else:
return HttpResponse("error") #下面这个是直接显示路径
# pic1 = request.FILES['pic1']
# picName=os.path.join(settings.MEDIA_ROOT,pic1.name)
# return HttpResponse(picName)#/Users/liuwei/myImg/static/media/6.png
#file:///Users/liuwei/myImg/static/media/6.png

upLoadPic.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body> <form action="/uploadHandle" method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="pic1">
<br>
<input type="submit" value="上传">
</form>
</body>
</html>

那进入myImg/目录 运行

python3 manage.py runserver

在浏览器打开

http://127.0.0.1:8000/uploadPic/

碰到几个问题:

1. 图片显示不了 那是因为setting .py中没有

STATICFILES_DIRS=[os.path.join(BASE_DIR,'static')]

2.上传不了 是因为 要用wb+ , 这个百度就可以了

with open(fname,'wb+') as pic:

最新文章

  1. CSS实现图片缩放特效
  2. 高阶Laplace曲面形变算法(Polyharmonic Deformation)
  3. mysql 时间函数
  4. 2016年GitHub排名前20的Python机器学习开源项目(转)
  5. git的使用(3) 多分支情况下的pull
  6. 机器学习中的算法-决策树模型组合之随机森林与GBDT
  7. Android中使用广播机制退出多个Activity
  8. 命令行下玩VC
  9. 让VS2010支持HTML5
  10. WCF/WPF公司内部订餐程序开发
  11. 利用jmeter+JAVA对RPC的单接口(dubbo接口等)进行性能测试
  12. Eclipse安装SVN插件(转载)
  13. Wpf binging(一) 基础
  14. centos 安装nvm和node.js
  15. 网站后台搭建--springboot项目是如何创建的
  16. 002_HTTP每日分析及翻译
  17. [zoj4046][树状数组求逆序(强化版)]
  18. IE浏览器强制不是要兼容视图
  19. 使用环信开发项目遇到错误提示 configure your build for VectorDrawableCompat
  20. 【HTML5】中的一些新标签

热门文章

  1. 当在浏览器中输入一个url后回车,后台发生了什么?比如输入url后,你看到了百度的首页,那么这一切是如何发生的呢?
  2. json模块:字符串与字典之间的转换--loads,dumps,load,dump
  3. Components controls 区别
  4. Babel编译:动态计算的属性名
  5. Jenkins---简单认识
  6. Websocket如何建立连接
  7. java 泛型的内部原理:类型擦除以及类型擦除带来的问题
  8. vue 中使用class(样式)
  9. Python之路-Python中文件和异常
  10. 同步请求与异步请求Json