将图片保存到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的Seconds_Behind_Master
May 18 MySQL
MySQL 视图(View)原理解析
May 19 MySQL
MySQL系列之七 MySQL存储引擎
Jul 02 MySQL
ORM模型框架操作mysql数据库的方法
Jul 25 MySQL
MySQL中order by的使用详情
Nov 17 MySQL
Mysql多层子查询示例代码(收藏夹案例)
Mar 31 MySQL
解决MySQL Varchar 类型尾部空格的问题
Apr 06 MySQL
MySQL数据库优化之通过索引解决SQL性能问题
Apr 10 MySQL
mysql 获取相邻数据项
May 11 MySQL
MySQL数据库之存储过程 procedure
Jun 16 MySQL
MySQL约束(创建表时的各种条件说明)
Jun 21 MySQL
分享很少见很有用的SQL功能CORRESPONDING
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企业级应用之常见缓存技术篇
2011/01/27 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
thinkPHP5框架导出Excel文件简单操作示例
2018/08/03 PHP
浅谈PHP无限极分类原理
2019/03/14 PHP
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
Ajax+Json 级联菜单实现代码
2009/10/27 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
基于jQuery日历插件制作日历
2016/03/11 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
Javascript中的prototype与继承
2017/02/06 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
Angular2库初探
2017/03/01 Javascript
webpack使用 babel-loader 转换 ES6代码示例
2017/08/21 Javascript
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
vue3.0 搭建项目总结(详细步骤)
2019/05/20 Javascript
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
Pandas之drop_duplicates:去除重复项方法
2018/04/18 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
Python3通过chmod修改目录或文件权限的方法示例
2020/06/08 Python
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
药物学专业学生的自我评价
2013/10/27 职场文书
幼儿教师研修感言
2014/02/12 职场文书
就业协议书怎么填
2014/09/15 职场文书
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python