将图片保存到mysql数据库并展示在前端页面的实现代码


Posted in MySQL onMay 02, 2021

小编使用python中的django框架来完成!

1,首先用pycharm创建django项目并配置相关环境

这里小编默认项目都会创建

settings.py中要修改的两处配置

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'photos',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'USER': 'root',
        'PASSWORD': '201314',

    }
}


STATIC_URL = '/static/'

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

2,创建表

①先按键盘上win+s键,然后输入cmd,中文输入法两下回车,英文输入法一下回车,即可进入dos窗口。

②输入 mysql -uroot -p密码 回车进入mysql数据库,再输入 create database 表名; 一个小回车,创建数据库?

将图片保存到mysql数据库并展示在前端页面的实现代码

③在app下的models.py中创建表结构

models.py

from django.db import models

# Create your models here.


class Images(models.Model):
    img = models.ImageField(upload_to='static/pictures/')  # upload_to='static/pictures/'是指定图片存储的文件夹名称,上传文件之后会自动创建
    img_name = models.CharField(max_length=32)
    create_time = models.DateTimeField(auto_now_add=True)

④迁移数据库

分别按顺序在pycharm下面的Terminal中执行下面两条语句

python manage.py makemigrations

python manage.py migrate

将图片保存到mysql数据库并展示在前端页面的实现代码

3,上传图片功能

urls.py

from django.conf.urls import url
from django.contrib import admin
from app01 import views

urlpatterns = [
    url(r'^admin/$', admin.site.urls),

    url(r'^upload/$', views.upload, name='upload'),

]

views.py

from django.shortcuts import render, redirect
from app01 import models


# Create your views here.


def upload(request):
    error = ''
    if request.method == 'POST':
        img = request.FILES.get('img')
        pic_name = img.name
        if pic_name.split('.')[-1] == 'mp4':
            error = '暂不支持上传此格式图片!!!'
        else:
            models.Images.objects.create(img_name=pic_name, img=img)
            return redirect('show')
    return render(request, 'upload.html', locals())

前端上传页面upload.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上传照片</title>
</head>
<body>
<div style="height: 160px">
    <form action="" method="post" enctype="multipart/form-data">
        {% csrf_token %}
        <h1>上传图片页面</h1>
        <table cellpadding="5px">
            <tr>
                <td>上传图片</td>
                <td><input type="file" name="img"></td>
            </tr>
            <tr>
                <td>
                    <button>上传</button>
                </td>
                <td><strong style="color: red">{{ error }}</strong></td>
            </tr>
        </table>
    </form>
</div>
<div style="text-align: center;color: #2b542c;font-size: 20px;">
    <a href=" {% url 'show' %} " rel="external nofollow" >返回</a>
</div>
</body>
</html>

将图片保存到mysql数据库并展示在前端页面的实现代码

4,展示图片功能

urls.py

"""
from django.conf.urls import url
from django.contrib import admin
from app01 import views

urlpatterns = [
    url(r'^admin/$', admin.site.urls),

    url(r'^upload/$', views.upload, name='upload'),
    url(r'^show/$', views.show, name='show'),

]

views.py

from django.shortcuts import render, redirect
from app01 import models


# Create your views here.


def upload(request):
    error = ''
    if request.method == 'POST':
        img = request.FILES.get('img')
        pic_name = img.name
        if pic_name.split('.')[-1] == 'mp4':
            error = '暂不支持上传此格式图片!!!'
        else:
            models.Images.objects.create(img_name=pic_name, img=img)
            return redirect('show')
    return render(request, 'upload.html', locals())


def show(request):
    all_images = models.Images.objects.all()
    # for i in all_images:
    #     print(i.img)
    return render(request, 'show.html', locals())

前端展示show.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>展示照片</title>
</head>
<body>
{% for image in all_images %}
    <img src="/{{ image.img }}" style="width: 240px;height: 240px;">
{% endfor %}
<br/>
<p style="text-align: center;color: #2b542c;font-size: 20px;">
    <a href="{% url 'upload' %}" rel="external nofollow"  rel="external nofollow" >返回</a>
</p>
</body>
</html>

将图片保存到mysql数据库并展示在前端页面的实现代码

5,删除图片功能

urls.py

from django.conf.urls import url
from django.contrib import admin
from app01 import views

urlpatterns = [
    url(r'^admin/$', admin.site.urls),

    url(r'^upload/$', views.upload, name='upload'),
    url(r'^show/$', views.show, name='show'),
    url(r'^delete/$', views.delete, name='delete'),

]

views.py

from django.shortcuts import render, redirect
from app01 import models


# Create your views here.


def upload(request):
    error = ''
    if request.method == 'POST':
        img = request.FILES.get('img')
        pic_name = img.name
        if pic_name.split('.')[-1] == 'mp4':
            error = '暂不支持上传此格式图片!!!'
        else:
            models.Images.objects.create(img_name=pic_name, img=img)
            return redirect('show')
    return render(request, 'upload.html', locals())


def show(request):
    all_images = models.Images.objects.all()
    # for i in all_images:
    #     print(i.img)
    return render(request, 'show.html', locals())


def delete(request):
    pk = request.GET.get('pk')
    models.Images.objects.filter(id=pk).delete()
    return redirect('show')

show.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>展示照片</title>
</head>
<body>
{% for image in all_images %}
    <img src="/{{ image.img }}" style="width: 240px;height: 240px;">
    <a href="/delete/?pk={{ image.id }}" rel="external nofollow" >删除</a>
{% endfor %}
<br/>
<p style="text-align: center;color: #2b542c;font-size: 20px;">
    <a href="{% url 'upload' %}" rel="external nofollow"  rel="external nofollow" >返回</a>
</p>
</body>
</html>

将图片保存到mysql数据库并展示在前端页面的实现代码

6,整体演示一遍

将图片保存到mysql数据库并展示在前端页面的实现代码

因为时间紧,故以最low方式简要实现,并没有加上漂亮的页面和样式,喜欢美的看客朋友可自行去Bootstrap官网或jq22自行添加!!!

到此这篇关于将图片保存到mysql数据库并展示在前端页面的文章就介绍到这了,更多相关图片保存mysql数据库展示前端页面内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL COUNT函数的使用与优化
May 10 MySQL
超详细教你怎么升级Mysql的版本
May 19 MySQL
修改MySQL的默认密码的四种小方法
May 26 MySQL
MySQL8.0.18配置多主一从
Jun 21 MySQL
MySQL命令无法输入中文问题的解决方式
Aug 30 MySQL
浅谈mysql哪些情况会导致索引失效
Nov 20 MySQL
彻底解决MySQL使用中文乱码的方法
Jan 22 MySQL
MySQL为数据表建立索引的原则详解
Mar 03 MySQL
MySQL时区造成时差问题
Apr 13 MySQL
解决Mysql报错 Table 'mysql.user' doesn't exist
May 06 MySQL
面试官问我Mysql的存储引擎了解多少
Aug 05 MySQL
MySQL自定义函数及触发器
Aug 05 MySQL
MySQL的join buffer原理
Apr 29 #MySQL
Mysql服务添加 iptables防火墙策略的方案
Apr 29 #MySQL
MySQL数据迁移相关总结
MySQL慢查询的坑
解决MySQL存储时间出现不一致的问题
Apr 28 #MySQL
jdbc使用PreparedStatement批量插入数据的方法
Apr 27 #MySQL
MySQL安装后默认自带数据库的作用详解
Apr 27 #MySQL
You might like
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
php查询ip所在地的方法
2014/12/05 PHP
php计算到指定日期还有多少天的方法
2015/04/14 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
PHP全局变量与超级全局变量区别分析
2016/04/01 PHP
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
javascript返回顶部效果(自写代码)
2013/01/06 Javascript
模拟多级复选框效果的jquery代码
2013/08/13 Javascript
js中array的sort()方法使用介绍
2014/02/20 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
javascript实时显示当天日期的方法
2015/05/20 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
Angular项目从新建、打包到nginx部署全过程记录
2017/12/09 Javascript
使用svg实现动态时钟效果
2018/07/17 Javascript
如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目
2019/01/20 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
Python函数可变参数定义及其参数传递方式实例详解
2015/05/25 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
Python定时任务APScheduler原理及实例解析
2020/05/30 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
企业为何需要商业计划书
2013/12/26 职场文书
护士见习期自我鉴定
2014/02/08 职场文书
夫妻双方自愿离婚协议书怎么写
2014/12/01 职场文书
捐款仪式主持词
2015/07/04 职场文书
python基于OpenCV模板匹配识别图片中的数字
2021/03/31 Python
Python实现简单的猜单词
2021/06/15 Python
Python中super().__init__()测试以及理解
2021/12/06 Python
Vue深入理解插槽slot的使用
2022/08/05 Vue.js