将图片保存到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大小写敏感的注意事项
May 24 MySQL
.Net Core导入千万级数据至Mysql的步骤
May 24 MySQL
SQL注入的实现以及防范示例详解
Jun 02 MySQL
Mysql实现主从配置和多主多从配置
Jun 02 MySQL
zabbix监控mysql的实例方法
Jun 02 MySQL
MYSQL 无法识别中文的永久解决方法
Jun 03 MySQL
Mysql数据库按时间点恢复实战记录
Jun 30 MySQL
教你使用VS Code的MySQL扩展管理数据库的方法
Jan 22 MySQL
Mysql 如何合理地统计一个数据库里的所有表的数据量
Apr 18 MySQL
详解Mysql事务并发(脏读、不可重复读、幻读)
Apr 29 MySQL
MYSQL如何查看操作日志详解
May 30 MySQL
SQLServer常见数学函数梳理总结
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跨站刷票的实现代码
2013/06/18 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
使用递归遍历对象获得value值的实现方法
2016/06/14 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
详解vue-cli 构建Vue项目遇到的坑
2017/08/30 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
ES6的Fetch异步请求的实现方法
2018/12/07 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
详解Vue源码中一些util函数
2019/04/24 Javascript
[52:57]2014 DOTA2国际邀请赛中国区预选赛 LGD-CDEC VS HGT
2014/05/21 DOTA
Python 常用的安装Module方式汇总
2017/05/06 Python
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
Python语言快速上手学习方法
2018/12/14 Python
Python 实现递归法解决迷宫问题的示例代码
2020/01/12 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
装潢设计实习自我鉴定
2013/09/19 职场文书
高中三年学习生活的自我评价
2013/10/10 职场文书
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
文明倡议书范文
2014/04/15 职场文书
协议书范本
2014/04/23 职场文书
责任书范本
2014/08/25 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
求职推荐信范文
2015/03/27 职场文书
2015小学教育教学工作总结
2015/07/21 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
Golang的继承模拟实例
2021/06/30 Golang
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server