基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx

上传人:wj 文档编号:728989 上传时间:2023-04-29 格式:DOCX 页数:44 大小:1.72MB
下载 相关 举报
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第1页
第1页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第2页
第2页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第3页
第3页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第4页
第4页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第5页
第5页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第6页
第6页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第7页
第7页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第8页
第8页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第9页
第9页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第10页
第10页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第11页
第11页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第12页
第12页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第13页
第13页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第14页
第14页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第15页
第15页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第16页
第16页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第17页
第17页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第18页
第18页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第19页
第19页 / 共44页
基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx_第20页
第20页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx

《基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx(44页珍藏版)》请在冰点文库上搜索。

基于Django的图片搜索网站-毕业论文Word文档下载推荐.docx

2.1.3技术可行性综述 13

2.2时间可行性 3

2.3系统需求分析 1.3

2.3.1系统开发运行环境 13

2.3.2系统功能概述 13

2.3.3系统数据流图 14

2.4系统总体结构分析结论 15

第三章系统设计.......................................................16

3.1数据库设计 6

3.1.1数据模型(ER图) 16

3.1.2数据库表及关系建立 17

3.1.3详细数据库结构设计 18

3.2系统概要设计 0

3.2.1功能模块设计 20

3.2.2系统界面设计 22

第四章系统的详细设计与实现 23

4.1系统框架实现 3

4.1.1Model层 24

4.1.2Template层 26

4.1.3View层的实现 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

结论 40

致谢 41

参考文献 42

当今世界,互联网技术快速发展,人们对互联网的要求越来越多,衍生出了一系列适应人们需求的网站。

随着电子行业的快速发展,首当其冲的就是视觉上的另类感受。

人们可以通过一系列的图像处理软件绘制自己想要的图片,可以通过图片表达一些情绪。

比如,冷色调给人以沉稳,冷静的感觉,暖色调则给人一种热情,开朗的心情。

纵观网络上,形形色色的图片数不胜数,如何分享它们,如何更快速地查找到自己所需要的图片是一个很庞大的问题。

因此,在此问题上,本人采用python的django框架搭建了一个图片搜索网站的系统,可以使用户将自己收藏的图片和他人分享,还可以搜索自己喜欢的图片并收藏,降低用户查找图片的难度,以达到更好的用户体验。

第一章系统概述

1.1总体概述

当前高速发展的互联网技术已经成为人们快速获取,发布和传递消息的重要渠道,颠覆了传统的信息传播方式,突破了传统交流方式中的时间空间壁垒,极大的改变了人类从物质到精神,从形式到内容的种种活动。

互联网上发布和获取信息都是通过网站来实现的。

因而网站日益成为企事业单位信息化建设中不可避免的重要组成部分,越来越多的收到人们的重视。

现在很多大学及其众多部门都建立了自己的网站,希望通过互联网来实现宣传,交流以及资源的整合。

基于网站的理念,本人设计并实现了这一图片搜索网站,该网站可以进行一系列的查询,方便用户查找到自己感兴趣的图片。

并通过上传可以增加图库里的图片,各个用户均可以分享整个图库里的所有图片。

而且学习python可以掌握一门脚本语言并结合Django这个python的web

框架,搭建的平台简单安全,可移植性好。

在国内外研究系统中:

国内类似的网站有百度的图片搜索,搜狗图片搜索,

topit.me的网站等;

国外的类似网站有谷歌图片搜索;

还有基于图片内容的搜索基于文本的图片搜索。

1.2开发背景

网站是一种通讯工具,就像布告栏一样,人们可以通过网站来发布自己想要公开的资讯信息,或者利用网站来提供相关的网络服务。

下面介绍几种目前颇受关注的新技术:

1.PHP

PHP即HypertextPreprocessor(超文本预处理器),它是当今Internet上最为火热的脚本语言,其语法借鉴了C、Java、PERL等语言,但只需要很少的编程知识你就能使用PHP建立一个真正交互的Web站点。

但PHP自身也存在缺点。

首先,PHP缺乏规模支持。

其次,缺乏多层结构支持。

对于大负荷站点,解决方法只有一个:

分布计算。

数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,群组成二维数组。

而PHP则缺乏这种支持。

再加上PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。

2.ASP

ASP即ActiveServerPages,它是微软开发的一种类似HTML(超文本标识语言)、Script(脚本)与CGI(公用网关接口)的结合体,它允许用户使用许多已有的脚本语言编写ASP的应用程序。

ASP的最大好处是可以包含HTML标签,也可以直接存取数据库及使用无限扩充的ActiveX控件。

通过使用ASP的组件和对象技术,用户可以直接使用ActiveX控件,调用对象方法和属性,以简单的方式实现强大的交互功能。

但ASP技术也非完美无缺,由于它基本上是局限于微软的操作系统平台之上,主要工作环境是微软的IIS应用程序结构,又因ActiveX对象具有平台特性,所以ASP技术不能很容易地实现在跨平台Web服务器上工作。

3.JSP

JSP即JavaServerPages,它是由SunMicrosystem公司于1999年6月推出的新技术,是基于JavaServlet以及整个Java体系的Web开发技术。

JSP和ASP在技术方面有许多相似之处,不过两者来源于不同的技术规范组织,以至ASP一般只应用于Windows平台,而JSP则可以在85%以上的服务器上运行,而且基于JSP技术的应用程序比基于ASP的应用程序易于维护和管

理,所以被许多人认为是未来最有发展前途的动态网站技术。

4.PythonWeb框架简单介绍两种框架:

Django

完美的文档,Django的成功,我觉得很大一部分原因要归功于Django近乎完美的官方文档(包括Djangobook)。

全套的解决方案,Django象Rails一样,提供全套的解决方案(full-stackframework+batteriesincluded),基本要什么有什么(比如:

cache、session、

feed、orm、geo、auth),而且全部Django自己造,开发网站应手的工具Django基本都给你做好了,因此开发效率是不用说的,出了问题也算好找,不在你的代码里就在Django的源码里。

强大的URL路由配置,Django让你可以设计出非常优雅的URL,在Django

里你基本可以跟丑陋的GET参数说拜拜。

自助管理后台,admininterface是Django里比较吸引眼球的一项

contrib,让你几乎不用写一行代码就拥有一个完整的后台管理界面。

web.py

Web.py的设计理念力求精简(Keepitsimpleandpowerful),总共就没多少行代码,也不像Pylons那样依赖大量的第三方模块,而是只提供的一个框架所必须的一些东西,如:

URL路由、Template、数据库访问,其它的就交给用户自己去做好了。

一个框架精简的好处在于你可以聚焦在业务逻辑上,而不用太多的去关心框架本身或受框架的干扰,同时缺点也很明显,许多事情你得自己操刀上。

1.3开发目的

看到一些图片搜索网站感觉非常有意思,比如百度图片,谷歌图片以及搜狗图片。

对里面的机制很感兴趣,就想自己做一个类似的网站。

专门的识图网站来满足一些用户的需求。

第二章系统分析

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'

tRepeatYourself)。

在Django中Python被普遍使用,甚至包括配置文件和数据模型。

Django使你能够专注于Web应用上有趣的关键性的东西。

为了达到这个目标,Django提供了通用Web开发模式的高度抽象,提供了频繁进行的编程作业的快速解决方法,以及为“如何解决问题”提供了清晰明了的约定。

同时,

Django尝试留下一些方法,来让你根据需要在framework之外来开发。

| Site/

| init.py

| manage.py

| urls.py

| settings.py

Django基本元素:

Ÿinit.py:

让Python把该目录当成一个开发包(即一组模块)所需的文件。

这是一个空文件,一般你不需要修改它。

Ÿmanage.py:

一种命令行工具,允许你以多种方式与该Django项目进行交互。

键入pythonmanage.pyhelp,看一下它能做什么。

你应当不需要编辑这个文件;

在这个目录下生成它纯是为了方便。

5

Ÿsettings.py:

该Django项目的设置或配置。

查看并理解这个文件中可用的设置类型及其默认值。

Ÿurls.py:

Django项目的URL设置。

可视其为你的django网站的目录。

前,它是空的。

3.Django式的MVC设计模式

当前最为成功最为常用的设计架构之一当属MVC-即模型-视图-控制器设计模式了。

它将应用软件的各类职能很好的分离开来,Django大致上遵循这一设计理念。

当然比起Java框架里的MVC,它略微有些不同。

1、模型(model)主要负责管理数据和核心的业务逻辑

2、视图(view)负责将数据展示给用户

3、控制器(Controller)接收用户输入并执行应用程序逻辑层面的工作在很多领域这一思路非常高效,不过Django的设计者们不是简单的照搬

这一模式,而且试图构建一个更适合Web应用程序开发的思路,因为django

最初是用在新闻出版类的网站上,对新闻事件的快速反应要求这套框架也必须

“快”、“准”、“狠”。

于是最终一些和MVC不太相同的设计目标产生了:

1、针对特定一组任务的代码必须更加好维护

2、程序开发应该被赋予更多的灵活性,因为不同的视图、控制器层会连接到相同的模型层。

这使得很多应用程序能够针对不同的客户使用不同的方法来

共享相同的业务逻辑和数据。

3、开发者只需学习与他工作相关的那部分系统功能。

这种分工一方面降低难度提高效率、另一方面也使开发者可以把注意力集中到自己业务问题上。

于是最终Django的架构被设计成Model-Template-View的形式,下面仔细聊聊各个模块。

模型

将模型分离出来,这和MVC架构的M还是差不多的。

Django的model提供一套简单的数据库交互接口用来封装核心业务逻辑。

model独立于系统的其他模块,可以被系统其他任意模块访问。

比如与数据库的交互可以直接通过

python解释器访问,无需启动web服务器或者业务相关的逻辑层。

视图

虽然名字和MVC里的名字相同,但是实际上他们干的事有点不同。

他是MVC里的部分V和全部C的结合体。

django的视图接受用户输入,包括简单的请求,然后根据特定的交互逻辑运算,然后返回用户需要的数据。

视图通常用普通的Python函数来写,不过Django1.3开始已经慢慢向类转变,所有的内置视图都有了类版本,这样做就能最大限度的提升软件的复用。

严格来讲python支持所有的Pythoncallable作为View,其中包括实例方法,

callable类(实现call方法的类实例),柯西化或者装饰化的函数。

模板

view负责的是如何得到用户需要的数据,至于怎么展现数据那就是模板的事了。

模板大约相当于MVC里边的View。

不过django里的模板功能还是相当强大的,比如他有叫customtag的东西,按官方文档的说法,他是万能的,他可以绕过视图直接和模型交互,所以对于页面上需要相同的数据只是不同的展现方式的东西,直接用它吧。

URL配置

根据整个框架设计逻辑,Django还提供了一个独立粘合层将视图暴露出去。

URL使用正则表达式将view和url完美的对接起来。

正因为使用正则表达式,它的可读性和可维护性相当让人身心愉悦,妙不可言。

所谓,RESTful就是它了!

松耦合

MVC设计模式以及Django的MTV提倡不用功能的代码不应该也不需要知道彼此的具体操作,也就是常说的松耦合。

相反,紧耦合不同功能模块之间的依赖程度很高。

紧耦合导致代码维护难等一些列问题,这些问题无疑会增加程序员的工作负担,一点小改动就会牵扯方方面面,增加了工作量也增加了成本。

松耦合提倡代码之间不能有知道彼此的具体操作。

当然实际的项目中不同模块的代码引用总是避免不了,关键就是隐藏细节。

4.Bootstrap

Bootstrap是著名的社交网站、微博的先驱Twitter在2011年8月推出的开源WEB前端框架,集合CSS和HTML,使用了最新的浏览器技术,为快速WEB开发提供了一套前端工具包,包括布局、网格、表格、按钮、表单、导航、提示等。

使用Bootstrap可以构建出非常优雅的前端界面,而且占用资源非常小。

GitHub上这样介绍bootstrap:

简单灵活可用于架构流行的用户界面和交互接口的html,css,javascript工具集。

基于html5、css3的bootstrap,具有大量的诱人特性:

友好的学习曲线,卓越的兼容性,响应式设计,12列格网,样式向导文档,自定义JQuery插件,完整的类库,基于Less等。

例如,要显示下面的格式的话,只需要引入bootstrap的CSS,调用对应的类即可。

见图2.2.1。

图2.2.1bootstrap演示

<

form>

fieldset>

legend>

Legend<

/legend>

label>

Labelname<

/label>

inputtype="

text"

placeholder="

Ty pesomething…"

span class="

help-block"

Exampleblock-levelhelptexthere.<

/span>

labelclass="

checkbox"

Checkmeout

buttontype="

submit"

class="

btn"

Submit<

/button>

/fieldset>

/form>

代码如下:

2.1.2MySQL数据库的选用

鉴于MySQL的一系列特性以及需求选用了MySQL作为本项目的数据库。

特性如下:

Ÿ使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。

Ÿ支持AIX、BSDi、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、NetBSD、

OpenBSD、OS/2Wrap、Solaris、SunOS、Windows等多种操作系统。

Ÿ为多种编程语言提供了API。

这些编程语言包括C、C++、C#、Delphi、Eiffel、

Java、Perl、PHP、Python、Ruby和Tcl等。

Ÿ支持多线程,充分利用CPU资源,支持多用户。

Ÿ优化的SQL查询算法,有效地提高查询速度。

Ÿ既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。

Ÿ提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS

等都可以用作数据表名和数据列名。

Ÿ提供TCP/IP、ODBC和JDBC等多种数据库连接途径。

Ÿ提供用于管理、检查、优化数据库操作的管理工具。

Ÿ可以处理拥有上千万条记录的大型数据库。

2.1.3技术可行性综述

综上所述,这些成熟的技术和设计思想为本系统的开发提供了理论基础,计算机基础设施的更新换代也为开发系统提供了硬件基础。

故本系统可以实现。

2.2时间可行性

本系统所用到的技术都是本人现学的,其中Python是在寒假期间学习的,参考书目为《Python基础教程》。

因为大学期间接触过JSP编程的MVC模式,所以对于Django很容易上手。

2013.01.20-2013.02.20

学习Python

2013.02.21-2013.03.20

学习Django并进行项目设计

2013.03.21-2013.04.10

进一步根据所学内容进行详细设计

2013.04.11-2013.05.10

编写代码

2013.05.11-2013.05.15

撰写论文

计划如下:

2.3系统需求分析

2.3.1系统开发运行环境

鉴于系统的开发语言和数据库,采用如下的开发环境和工具:

开发环境:

Windows7,Python2.7,Django1.5.1

开发语言:

Python数据库:

Mysql

开发工具:

JetBrainsPyCharm2.7.1

2.3.2系统功能概述

本网站由用户模块,搜索模块和随便看看模块三部分组成。

其中搜索模块是核心模块,具有很多功能。

鉴于本系统的性质,系统应实现以下功能:

1.用户功能实现

(1)用户的注册

(2)用户的登录

(3)用户图片收藏

(4)用户收藏图片删除

(5)用户图片的上传

2. 搜索功能的实现

(1) 按图片关键字搜索

(2)按色系搜索

(3)按图片尺寸搜索

3. 随便看看功能的实现

(1) 显示图片

(2) 图片的画廊式播放

2.3.3系统数据流图

顶层数据流图如图2.3.3-1所示:

搜索图片

上传

申请注册

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2