django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

目标:

利用现有的知识创建一个图片显示网站,实现图片上传、显示、删除的操作(后续实现多图片上传)

开发环境:

Ubuntu 20.04.1 LTS

python3.8

django3.1.1

默认已经装好的包:

  django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

 

 

 

 

一、创建django工程(myImageSite),app(imageSite),创建模板文件夹(templates)、静态文件文件夹(static)并在settings.py配置路径

1.创建工程:

  django-admin startproject myImageSite

  django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

 

  目录

       django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

 

2.在myImageSite目录下创建app(imageSite)、模板文件夹(templates)、静态文件文件夹(static)

  cd myImageSite

  django-admin startapp imageSite

  mkdir static

  mkdir templates

  django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

 

  现在的目录是这样:

  django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

 

3.配置settings文件(myImageSite/settings.py)

  1.设置app加入imageSite

  在INSTALLED_APPS中加入‘imageSite‘,

  django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

 

  2.设置默认模板文件夹templates

  ‘DIRS‘: [BASE_DIR / ‘templates‘],

  django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

 

  3.配置静态文件路径(static)

  在settings.py最后加入STATICFILES_DIRS = [BASE_DIR / ‘static‘,]

            MEDIA_ROOT = BASE_DIR / ‘static‘

            django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

 

二、设计图片模型类(Images)并迁移数据库

  1.在static目录下创建media文件夹作为上传图片的路径

  django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

 

 

   2.imageSite/models.py中创建图片模型类Images,(该数据库有两列:默认的主键id和图片名称images_name)

1 from django.db import models
2 class Images(models.Model):
3     """图片模型类"""
4     images_name = models.ImageField(upload_to=media) # upload_to=‘media‘指定上传图片的路径:BASE_DIR/static/media

  3.迁移数据库

    1.在mysql中创建数据库image_site并指定字符集为utf8,排序规则为utf8_general_ci

      django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

      CREATE DATABASE image_site CHARACTER SET utf8 COLLATE utf8_general_ci;

      django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

    2.在myImageSite/settings.py中配置默认数据库为mysql  

 1 DATABASES = {
 2     default:
 3         {
 4             ENGINE: django.db.backends.mysql,  # 数据库引擎
 5             NAME: image_site,  # 数据库名称
 6             HOST: 127.0.0.1,  # 数据库地址,本机127.0.0.1
 7             PORT: 3306,  # 端口
 8             USER: root,  # 数据库用户名
 9             PASSWORD: root,  # 数据库密码
10         }
11 }

    3.迁移数据库       

     3.1 在myImageSite/__init__.py中导入mysql数据库

       myImageSite/__init__.py:

1 import pymysql
2 
3 pymysql.install_as_MySQLdb()

      

     3.2python manage.py makemigrations

       python manage.py migrate 

      django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

 

 

 

      python manage.py makemigrations,遇到报错

        django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

 

      查了一下是因为导入的mysqlclient的版本与现有不符,myImageSite/__init__.py中加入这行就可以了:

1 import pymysql 
2 pymysql.version_info = (1, 4, 13, "final", 0)
3 pymysql.install_as_MySQLdb()

      django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

      数据库已经迁移完成(model.py中Images类对应的表是 数据库image_site中的imageSite_images表,有两个字段:id,images,主要对这个表进行操作)

        django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

 

 

 

 

 

 

 

 

      

 

 

 

 

 

 

  

 

        

 

 

  

 

 

 

 

 

 

  

 

 

  

 

django边学边做:用Django3创建一个图片网站,实现多张图片上传、显示并删除图片(一、创建项目、app和模型类)

上一篇:vue中发送axios请求


下一篇:axios 简介与安装