Django管理页面上传保存图片详解
1、登录Ubuntu系统,打开终端,进入python虚拟环境,创建django工程,在工程内创建应用
workon djandotest
django-admin startproject djupload
cd djupload
python manage.py startapp book

2、使用pip安装图片操作包Pillow
pip install Pillow

3、在工程的配置文件中注册应用,添加上传图片保存路径,修改为使用mysql数据库
cd djupload
vi settings.py
修改部分的settings.py文件如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1', # 数据库主机
'PORT': 3306, # 数据库端口
'USER': 'root', # 数据库用户名
互蚊海 'PASSWORD': 'your password', # 数据库用户密码
'NAME': 'djtest' # 数据库名字,第4步会新建的数据库
}
}
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'book.apps.BookConfig',
]
MEDIA_ROOT=os.path.join(BASE_DIR,"static_files/media")
在工程的根目录创建static_files文件夹,在其中创建media文件夹
cd ..
mkdir static_files
cd static_files
mkdir media


4、连接本机mysql数据库,创建第3步配置的djtest数据库
mysql -uroot -p
输入密码
create database djtest default charset=utf8; #创建数据库djtest
在工程的同名文件夹的__init__.py文件,添加两行代码使django工程可以和
mysql数据库交互
cd ../djupload
vi __init__.py
__init__.py文件如下;
from pymysql import install_as_MySQLdb
install_as_MySQLdb()


5、在book应用中编写models.py文件,创建img模型类,添加ImageField字段。
cd ..
vi book/models.py
models.py文件如下:
from django.db import models
# Create your models here.
class img(models.Model):
name = models.CharField(max_length=20)
image = models.ImageField(upload_to='booktest', verbose_name='图片', null=True)

6、生产数据库迁移文件
python manage.py makemigrations
迁移数据库
python manage.py migrate

7、创建超级毙泥用户
python manage.py createsuperuser

8、注册模型类,这样管理页面就可以操作img模型类
vi book/admin.py
admin.py文件如下:
from django.contrib import admin
from .models import img
# Register your models here.
admin.site.register(img)
~

9、运行django服务器
python mange.py runserver

10、本泪互机输入网址
http://127.0.0.1:8000/admin
登录后上传图片




11、回到控制台,打开工程根目录/static_files/media/booktest文件夹,下面就有刚刚上传的文件
