Django1.11搭建一个简易上传显示图片的后台
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃
项目展示需要,之前没研究过Django,网上查资料快速做了一个后台,写下了防止自己忘了。
1. 安装Django:
pip install Django
2. 测试Django:
python
>> import django
>>django.VERSION
显示版本为(1, 11, 5, 'final', 0),刚接触,github也没找到能运行起来的。
3. 运行一个demo
找到django-admin.py这个文件的路径,一般pip安装在Python的sit-packages里,如果是anaconda会在anaconda/bin目录下
whereis django-admin.py
打开该文件所在的目录
cd [$path of django-admin.py$]
在当前目录内产生一个HelloWorld项目,也可以在其他目录创建
django-admin.py startproject HelloWorld
进入HelloWorld项目内,用tree命令查看一下目录结构,如果没有tree这个工具建议安装一个:apt install tree或者yum install tree
tree
.
|-- HelloWorld
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
`-- manage.py
4. 运行测试
进入HelloWorld项目manager负责项目运行管理,它内部的子目录HelloWorld里面存放的是url配置及项目的setting配置,可以先在本地运行一下:
python manage.py runserver
直接访问localhost:8000就发现成功了。如果是外网访问,可以通过指定端口的方式,例如指定80端口:
python manage.py runserver 0.0.0.0:
如果外网不能访问,需要配置一下setting.py中的ALLOWED_HOSTS,修改为:
ALLOWED_HOSTS = [‘*’]
直接用域名或者公网ip访问即可:

5. 创建一个uploadImg的app
在HelloWorld目录下运行manage.py
python manage.py startapp uploadImg
把这个应用加入到setting.py的INSTALLED_APPS中
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'uploadImg',
]
可以看一下现在HelloWorld目录结构:tree
.
├── HelloWorld1
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-.pyc
│ │ └── settings.cpython-.pyc
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── loadImg
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
└── manage.py
loadImg是刚才创建的app,其中的model不言而喻,肯定是数据相关了。vim loadImg/models.py,创建IMG类
from django.db import models
# Create your models here.
class IMG(models.Model):
img = models.ImageField(upload_to='upload')
6. 更新数据库
python manage.py makemigrations
python manage.py migrate
我是django1.11版本,所以是这两句命令,低于1.7版本命令为python manage.py syncdb
7. 编辑uploadImg目录下的views.py,创建图片上传和显示函数
from django.shortcuts import render
from uploadImg.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, 'uploadimg.html') def showImg(request):
imgs = IMG.objects.all()
content = {
'imgs':imgs,
}
return render(request, 'showimg.html', content)
8. 修改HelloWorld目录下的urls.py文件,这里相关博客提供的我没有配通,所以自己修改了一下,1.10版本后直接import views会提示错误,新手小白需要注意:
from django.conf.urls import url
from django.contrib import admin
from uploadImg.views import uploadImg,showImg
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^upload', uploadImg),
url(r'^show', showImg),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
修改setting.py文件,添加配置上传文件路径:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
9. 在uploadImg目录下创建templates目录,在该目录下分别创建uploadimg.html和showimg.html
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="img">
<button type="submit">上传</button>
</form>
{% for img in imgs %}
<img src='{{ img.img.url }}' />
{% endfor %}
10. 运行测试第4步进行
需要注意,如果不是root用户没有配置默认是没有80端口权限的,建议使用其他端口。
参考:
http://www.cnblogs.com/yubenliu/p/6121536.html
http://www.runoob.com/django/django-tutorial.html
Django1.11搭建一个简易上传显示图片的后台的更多相关文章
- jquery+flask+keras+nsfw快速搭建一个简易鉴黄工具
1. demo 地址:http://www.huchengchun.com:8127/porn_classification 接口说明: 1. http://www.huchengchun.com:8 ...
- Django(十九)文件上传:图片上传(后台上传、自定义上传)、
一.基本设置 参考:https://docs.djangoproject.com/zh-hans/3.0/topics/http/file-uploads/ 1)配置project1/settings ...
- 一个node.js图片上传显示小应用
文件结构如下: 实现的功能有: 可以通过浏览器使用. 当请求http://domain/start时,可以看到一个欢迎页面,页面上有一个文件上传的表单. 用户可以选择一个图片并提交表单,随后文件将被上 ...
- plupload简易应用 多图片上传显示预览以及删除
<script> var uploader = new plupload.Uploader({ //实例化一个plupload上传对象 browse_button: 'btnBrowse' ...
- Day12-微信小程序实战-交友小程序-搭建服务器与上传文件到后端
要搞一个小型的cms内容发布系统 因为小程序上线之后,直接对数据库进行操作的话,慧出问题的,所以一般都会做一个管理系统,让工作人员通过这个管理系统来对这个数据库进行增删改查 微信小程序其实给我们提供了 ...
- ssm框架实现图片上传显示并保存地址到数据库
本案例是通过springmvc+spring+mybatis框架以商品上传为例,实现的图片上传功能,并把图片的地址保存到数据库并在前台显示上传的图片. 本项目是使用maven搭建的项目,首先看下项目结 ...
- Angularjs,WebAPI 搭建一个简易权限管理系统
Angularjs,WebAPI 搭建一个简易权限管理系统 Angularjs名词与概念(一) 1. 目录 前言 Angularjs名词与概念 权限系统原型 权限系统业务 数据库设计和实现 Web ...
- MVC应用程序显示上传的图片
MVC应用程序显示上传的图片 前两篇<MVC应用程序实现上传文件>http://www.cnblogs.com/insus/p/3590907.html和<MVC应用程序实现上传文件 ...
- Ecshop商品描述上传中文名图片无法显示解决方法
在后台上传商品图片的时候,如果你选择一个中文名称的图片,那么上传后会产生乱码,导致图片显示不出来. 下面说一种解决办法:使用"年月日时分秒 + 6个随机字符"做为文件名,如 201 ...
随机推荐
- 代码的完整性:打印1到最大的n位数
输入数字n,按顺序打印出从1到最大的n位十进制数. 比如,输入3,则打印出1,2,3,.....,一直到最大的3位数即999. 全排列打印 public class Main { public sta ...
- CVE-2016-10191 FFmpeg RTMP Heap Buffer Overflow 漏洞分析及利用
作者:栈长@蚂蚁金服巴斯光年安全实验室 一.前言 FFmpeg是一个著名的处理音视频的开源项目,使用者众多.2016年末paulcher发现FFmpeg三个堆溢出漏洞分别为CVE-2016-10190 ...
- 使用Spring的JavaConfig 和 @Autowired注解与自动装配
1 JavaConfig 配置方法 之前我们都是在xml文件中定义bean的,比如: 1 2 3 4 5 6 7 8 <beans xmlns="http://www.springf ...
- 框架应用:Spring framework (二) - AOP技术
基础概念 线程中的方法栈 java程序虚拟机启动时会载入程序码,虚拟机会为每一条正在运行的线程生成一个方法调用栈,线程以方法运行为执行单位. AOP概念以及目标 AOP是面向切面编程,其实就是在不修改 ...
- Python 接口测试(五)
五:使用python进行组织编写接口测试用例 接口测试其实就是几个步骤. 拿到接口的url地址 查看接口是用什么方式发送 添加请求头,请求体 发送查看返回结果,校验返回结果是否正确 明白了接口测试的测 ...
- 网站如何集成百度UEditor编辑器
在平时的网站维护使用过程中,富文本编辑器是网站必不可少的元素之一.现在市面上各种编辑器功能设计参差不齐,自己做了几个网站都是用蝉知建站系统做的,而蝉知默认内置的编辑器是KindEditor,功能简单, ...
- snmp之GenericAddress
GenericAddress 注册地址类型,而不是默认的,第一次调用解析(java.lang.String的)方法之前,设置系统属性ADDRESS_TYPES_PROPERTIES. 这个类涉及到了工 ...
- Spring事务源码阅读笔记
1. 背景 本文主要介绍Spring声明式事务的实现原理及源码.对一些工作中的案例与事务源码中的参数进行总结. 2. 基本概念 2.1 基本名词解释 名词 概念 PlatformTransaction ...
- VB.net DateTimePicker 初始化为空,选择后显示日期
目的:当某记录的日期数据为空的时候,DateTimePicker 不以默认当前时间显示. 优点:避免不规则的时间格式输入:符合平时遇到的时间输入习惯 缺点:设置要代码,没有textbox控件那么方便设 ...
- 翻译连载 | 第 10 章:异步的函数式(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇
原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS>作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTM ...