分享web开发知识

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

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

Django1.11搭建一个简易上传显示图片的后台

发布时间:2023-09-06 01:11责任编辑:董明明关键词:暂无标签

项目展示需要,之前没研究过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:80

如果外网不能访问,需要配置一下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-36.pyc│   │   └── settings.cpython-36.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 makemigrationspython manage.py migrate

我是django1.11版本,所以是这两句命令,低于1.7版本命令为python manage.py syncdb

7. 编辑uploadImg目录下的views.py,创建图片上传和显示函数

from django.shortcuts import renderfrom 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 urlfrom django.contrib import adminfrom uploadImg.views import uploadImg,showImgfrom django.conf.urls.static import staticfrom django.conf import settingsurlpatterns = [ ???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搭建一个简易上传显示图片的后台

原文地址:http://www.cnblogs.com/mar-q/p/7533285.html

知识推荐

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