郑州大学毕业设计论文题 目 基于Django的图片搜索网站
基于Django的图片搜索网站
摘要基于用户对图片查找的需求所设计的一个网站。该网站可以进行一系列的查询方便用户查找到自己感兴趣的图片。并通过上传可以增加图库里的图片各个用户均可以分享整个图库里的所有图片并通过收藏按钮可以在自己的图集中看到所喜欢的图片。方便用户收集喜欢的图片。
另外结合Django这个python的w eb框架搭建的平台简单安全可移植性好。实现一系列的功能例如登陆、注册、上传等。涉及图片搜索的功能有按关键字搜索按色系搜索按大小搜索等。对于用户来说可以收藏喜欢的图片并下载。各个用户的上传可以共享。此外整个页面简单大方使用Bootstrap风格加上特有的轮播效果展示图片效果更好用户体验效果比较好。
关键词 Python Django 图片搜索 Bootstrap 图像处理
1
Abstract:Based on the user needs to find the picture of a website.The site can do a seriesof queries for users to find their interesting pictures.Uploading pictures in the gallery,users canshare all the pictures of the entire library, and the collection of a button can be concentrated inthe Figure see the favorite pictures. It is convenient for users to collect pictures they like.
In addition, combine with Django,which is a web framework of Python,can take an easywork to build the platform.Owing to the features of django, such as safety, good portability, Ican write it easily.The website has a series of functions, such as login, register,upload,watchmy albums, have fun and others. The functions of search involving search by keywords, bycolors or by size.For the user, can collect favorite pictures,and download of it.Upload of eachuser can be shared.Furthermore, the entire page is simple and elegant. I use an open sourcepackage named bootstrap, the style of it is simple and graceful, showing pictures better.
Key Words:Python Django search bootstrap image processing
2
目录
第一章 系统概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
1.1总体概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
1.2开发背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
1.3开发目的. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
第二章系统分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
2.1技术可行性分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
2.1.1开发技术综述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
2.1.2MySQL数据库的选用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
2.1.3技术可行性综述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
2.2时间可行性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
2.3系统需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
2.3.1系统开发运行环境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
2.3.2系统功能概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
2.3.3系统数据流图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
2.4系统总体结构分析结论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
第三章系统设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
3.1数据库设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
3.1.1数据模型ER图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
3.1.2数据库表及关系建立. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
3.1.3详细数据库结构设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
3.2系统概要设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
3.2.1功能模块设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
3.2.2系统界面设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
第四章系统的详细设计与实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
4.1系统框架实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
4.1.1 Model层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
4.1.2 Te mp late层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
4.1.3 View层的实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
4.2系统功能模块实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
4.2.1用户模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
4.2.2搜索模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
4.2.3随便看看模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
4.3系统设计与实现总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
5.1测试概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
5.1.1软件测试的目的. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
5.1.2测试环境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
5.2系统测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
3
结 论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
致 谢. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
4
当今世界互联网技术快速发展人们对互联网的要求越来越多衍生出了一系列适应人们需求的网站。随着电子行业的快速发展首当其冲的就是视觉上的另类感受。人们可以通过一系列的图像处理软件绘制自己想要的图片可以通过图片表达一些情绪。 比如冷色调给人以沉稳冷静的感觉暖色调则给人一种热情开朗的心情。纵观网络上形形色色的图片数不胜数如何分享它们如何更快速地查找到自己所需要的图片是一个很庞大的问题。因此在此问题上本人采用python的django框架搭建了一个图片搜索网站的系统可以使用户将自己收藏的图片和他人分享还可以搜索自己喜欢的图片并收藏降低用户查找图片的难度 以达到更好的用户体验。
第一章系统概述
1 . 1总体概述
当前高速发展的互联网技术已经成为人们快速获取发布和传递消息的重要渠道颠覆了传统的信息传播方式突破了传统交流方式中的时间空间壁垒极大的改变了人类从物质到精神从形式到内容的种种活动。互联网上发布和获取信息都是通过网站来实现的。因而网站日益成为企事业单位信息化建设中不可避免的重要组成部分越来越多的收到人们的重视。现在很多大学及其众多部门都建立了自己的网站希望通过互联网来实现宣传交流以及资源的整合。基于网站的理念本人设计并实现了这一图片搜索网站该网站可以进行一系列的查询方便用户查找到自己感兴趣的图片。并通过上传可以增加图库里的图片各个用户均可以分享整个图库里的所有图片。
而且学习python可以掌握一门脚本语言并结合Django这个python的web框架搭建的平台简单安全可移植性好。
在国内外研究系统中国内类似的网站有百度的图片搜索搜狗图片搜索topit.me的网站等国外的类似网站有谷歌图片搜索还有基于图片内容的搜索基于文本的图片搜索。
5
1 .2开发背景
网站是一种通讯工具就像布告栏一样人们可以通过网站来发布自己想要公开的资讯信息或者利用网站来提供相关的网络服务。
下面介绍几种目前颇受关注的新技术
1. PHP
PHP即Hypertext Preprocessor(超文本预处理器) 它是当今Internet上最为火热的脚本语言其语法借鉴了C、 Java、 PERL等语言但只需要很少的编程知识你就能使用PHP建立一个真正交互的Web站点。
但PHP自身也存在缺点。首先 PHP缺乏规模支持。其次缺乏多层结构支持。对于大负荷站点解决方法只有一个分布计算。数据库、应用逻辑层、表示逻辑层彼此分开而且同层也可以根据流量分开群组成二维数组。而PHP则缺乏这种支持。再加上PHP提供的数据库接口支持不统一这就使得它不适合运用在电子商务中。
2. ASP
ASP即Active Server Pages它是微软开发的一种类似HTML(超文本标识语言) 、 Script(脚本)与CGI(公用网关接口)的结合体它允许用户使用许多已有的脚本语言编写ASP的应用程序。 ASP的最大好处是可以包含HTML标签也可以直接存取数据库及使用无限扩充的ActiveX控件。通过使用ASP的组件和对象技术用户可以直接使用ActiveX控件调用对象方法和属性 以简单的方式实现强大的交互功能。
但ASP技术也非完美无缺 由于它基本上是局限于微软的操作系统平台之上主要工作环境是微软的IIS应用程序结构又因ActiveX对象具有平台特性所以ASP技术不能很容易地实现在跨平台Web服务器上工作。
3. JSP
JSP即Java Server Pages它是由Sun Microsystem公司于1999年6月推出的新技术是基于Java Servlet以及整个Java体系的Web开发技术。
JSP和ASP在技术方面有许多相似之处不过两者来源于不同的技术规范组织 以至ASP一般只应用于Windows平台而JSP则可以在85%以上的服务器上运行而且基于JSP技术的应用程序比基于ASP的应用程序易于维护和管
6
理所以被许多人认为是未来最有发展前途的动态网站技术。
4.Python Web框架
简单介绍两种框架
Django
完美的文档 Django的成功我觉得很大一部分原因要归功于Django近乎完美的官方文档包括Django book。
全套的解决方案Django象Rails一样提供全套的解决方案full-stackframework+batteries included基本要什么有什么比如 cache、 session、feed、orm、geo、auth而且全部Django自己造开发网站应手的工具Django基本都给你做好了 因此开发效率是不用说的 出了问题也算好找不在你的代码里就在Django的源码里。
强大的URL路由配置 Django让你可以设计出非常优雅的URL在Django里你基本可以跟丑陋的GET参数说拜拜。
自助管理后台 admin interface是Django里比较吸引眼球的一项contrib让你几乎不用写一行代码就拥有一个完整的后台管理界面。web.py
Web.py的设计理念力求精简Keep it simple and powerful总共就没多少行代码也不像Pylons那样依赖大量的第三方模块而是只提供的一个框架所必须的一些东西如 URL路由、 Template、数据库访问其它的就交给用户自己去做好了。
一个框架精简的好处在于你可以聚焦在业务逻辑上而不用太多的去关心框架本身或受框架的干扰 同时缺点也很明显许多事情你得自己操刀上。
1 .3开发目的
看到一些图片搜索网站感觉非常有意思 比如百度图片谷歌图片以及搜狗图片。对里面的机制很感兴趣就想自己做一个类似的网站。专门的识图网站来满足一些用户的需求。
而且学习python可以掌握一门脚本语言并结合Django这个python的web框架搭建的平台简单安全可移植性好。
7
第二章系统分析
2. 1技术可行性分析
2. 1 . 1开发技术综述
1 . Python
Python是一种面向对象、直译式电脑编程语言具有近二十年的发展历史成熟且稳定。它包含了一组完善而且容易理解的标准库能够轻松完成很多常见的任务。它的语法简捷和清晰尽量使用无异义的英语单词与其它大多数程序设计语言使用大括号不一样它使用缩进来定义语句块。
Python的官方解释器是CPython,该解释器用C语言编写是一个由社区驱动的自由软件 目前由Python软件基金会管理。
Python支持命令式程序设计、面向对象程序设计、函数式编程、面向侧面程序设计、泛型编程多种编程范式。
Python的设计哲学是“优雅”、 “明确”、 “简单”。 Python开发者有意让违反了缩进规则的程序不能通过编译 以此来强制程序员养成良好的编程习惯。
例如
>>> print "Hello, world! "
Hello, world!
2. Django
Django是一个开放源代码的Web应用框架 由Python写成。采用了MVC的软件设计模式 即模型M视图V和控制器C。 Django的主要目标是使得开发复杂的、数据库驱动的网站变得简单。 Django注重组件的重用性和“可插拔性”敏捷开发和DRY法则Don' t Repeat Yourself。在Django中Python被普遍使用甚至包括配置文件和数据模型。
Django使你能够专注于Web应用上有趣的关键性的东西。 为了达到这个目标 Django提供了通用Web开发模式的高度抽象提供了频繁进行的编程作业的快速解决方法以及为“如何解决问题”提供了清晰明了的约定。 同时
8
易探云怎么样?易探云(yitanyun.com)是一家知名云计算品牌,2017年成立,从业4年之久,目前主要从事出售香港VPS、香港独立服务器、香港站群服务器等,在售VPS线路有三网CN2、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。目前,易探云推出免备案香港物理机服务器性价比很高,E3-1230 8 核*1/16G DDR3/SATA 1TB/香港BGP线路/20Mbps/不限流量,仅...
HostKvm也发布了开年促销方案,针对香港国际和美国洛杉矶两个机房的VPS主机提供7折优惠码,其他机房业务提供8折优惠码。商家成立于2013年,提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。下面列出几款主机配置信息。美国洛杉矶套餐:美国 US-Plan1CPU:1core内存:2GB硬盘...
BuyVM 商家算是有一些年头,从早年提供低价便宜VPS主机深受广大网友抢购且也遭到吐槽的是因为审核账户太过于严格。毕竟我们国内的个人注册账户喜欢账户资料乱写,毕竟我们看英文信息有些还是比较难以识别的,于是就注册信息的时候随便打一些字符,这些是不能通过的。前几天,我们可以看到BUYVM商家有新增加迈阿密机房,而且商家有提供大硬盘且不限制流量的VPS主机,深受有一些网友的喜欢。目前,BUYVM商家有...