图片如何存放在mysql中(将图片保存到mysql数据库并展示在前端页面的实现代码)
类别:数据库 浏览量:1895
时间:2021-10-11 00:22:31 图片如何存放在mysql中
将图片保存到mysql数据库并展示在前端页面的实现代码小编使用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 表名; 一个小回车,创建数据库
③在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 |
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> <li 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> </li> <li style= "text-align: center;color: #2b542c;font-size: 20px;" > <a href= " {% url 'show' %} " rel= "external nofollow" >返回</a> </li> </body> </html> |
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> |
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> |
6,整体演示一遍
因为时间紧,故以最low方式简要实现,并没有加上漂亮的页面和样式,喜欢美的看客朋友可自行去bootstrap官网或jq22自行添加!!!
到此这篇关于将图片保存到mysql数据库并展示在前端页面的文章就介绍到这了,更多相关图片保存mysql数据库展示前端页面内容请搜索萬仟网以前的文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网!
您可能感兴趣
- 停止mysql服务命令(windows下实现定时重启Apache与MySQL方法)
- docker创建mysql环境(docker上部署MySQL的示例)
- mysql怎么给查询权限(MySql设置指定用户数据库查看查询权限)
- MySQL中interactive_timeout和wait_timeout
- python导出数据到mysql(python定时按日期备份MySQL数据并压缩)
- mysql缓存是什么(详解mysql查询缓存简单使用)
- mysqltruncate分区自定义参数(MySQL truncate table语句的使用)
- mysql关联查询详解(详解mysql 组合查询)
- mysql账户访问权限(MySQL 权限控制详解)
- idea的mysql如何连接(在IntelliJ IDEA中使用Java连接MySQL数据库的方法详解)
- mysql分库分表视图(MySQL分库分表与分区的入门指南)
- mysql 临时表
- centos如何安装mysql8.0版本(Centos7下安装MySQL8.0.23的步骤小白入门级别)
- mysql必知必会索引(MySQL索引知识的一些小妙招总结)
- mysql主从复制如何解决延迟(MySQL 8.0.23中复制架构从节点自动故障转移的问题)
- mysql 查询json(MySQL处理JSON常见函数的使用)
- 给孩子选购保温杯,注意这4个步骤,比颜值更重要(给孩子选购保温杯)
- 保温好 容量大 颜值高 保温杯你给娃娃买对了吗(保温好容量大颜值高)
- 《道德经》 人生避开骄狂,才能免去祸患(道德经人生避开骄狂)
- 郭麒麟(郭麒麟)
- 古人十句 戒骄 名言,醍醐灌顶,受益匪浅(古人十句戒骄名言)
- 《道德经》:功成不局,泰而不骄(道德经:功成不局)
热门推荐
- elasticsearchwindows分词器配置(docker 部署 Elasticsearch kibana及ik分词器详解)
- python中list怎么用(详解python中list的使用)
- svn代码冲突的解决
- php时间戳是什么意思(php时间戳转换代码详解)
- python yield 使用浅析(yii框架使用分页的方法分析)
- phpstudy创建本地服务器(phpstudy linux小皮面板防火墙的开启与关闭)
- C#中的base和this关键字
- vue3.0路线图(Vue3.0 自己实现放大镜效果案例讲解)
- 宝塔ftp服务器怎么设置(宝塔面板创建的ftp登陆无法连接的解决方案)
- jquery ajax的async使用
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9