基于django的图书分享系统的设计与实现_第1页
基于django的图书分享系统的设计与实现_第2页
基于django的图书分享系统的设计与实现_第3页
基于django的图书分享系统的设计与实现_第4页
基于django的图书分享系统的设计与实现_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录 HYPERLINK l _TOC_250009 一、引言3 HYPERLINK l _TOC_250008 二、Django 技术基础3 HYPERLINK l _TOC_250007 (一)Python 语言4 HYPERLINK l _TOC_250006 (二)Python 的Web 开发框架4 HYPERLINK l _TOC_250005 (三)Django 框架技术5MVT 架构5Form 表单类6基于类的通用视图6自动管理接口7 HYPERLINK l _TOC_250004 三、系统的设计与实现7 HYPERLINK l _TOC_250003 (一)系统总体设计7内容管

2、理相关数据模型设计7数据库实现9Web设计9 HYPERLINK l _TOC_250002 结论 HYPERLINK l _TOC_250001 参考文献:14 HYPERLINK l _TOC_250000 致 谢0 PAGE PAGE 9基于 Django 的图书内容分享管理系统的设计与实现谈鑫数学与信息学院 信息管理与信息系统专业 2010 级 指导老师:杨艳梅近年来,基于开源的内容管理系统迅速兴起 它不仅帮助人们快速建立发DjangoPythonDjangoMVCPythonMySQLWebDjangoHTTPURLconf ViewDjango整个系统最终完成了:基于模板的网站页面

3、和管理页面,及时快速发布图书信息,对图书信息的评级、评论等功能。关键字:Django;内容管理;Books share content management system based on DjangoTanxinInformation management and information system of Mathematics information Department Grade 2010Instructor: Yang YanmeiAbstract: Today, Internet technology is used widely by enterprises, institut

4、ions, school, government or individuals as tool to release and manage information.Face to millions of library books, the paper considers that the establishment of a book sharing sites in favor of students faster and easier to find the desired book.In past several years, the open content management s

5、ystem is booming. Not only it helps to rapidly build the platform of releasing the information, but also it manageand integrate the contents and resource of the website. On this background, wepropose to use Django framework to Python as the primary development language developed quickly publish book

6、 content sharing solutions for information management system. There are three feasibility analysis. Technically, using Django, MVC, Python, MySQL. Economically, using free, open source LAMP software.Society, Developed a books content sharing management system that allows students to quickly find the

7、 required books. Then create the application project, configure the database, with models.py concrete realization of the physical data model of the while generating the corresponding data sheet. In Web design, first outlined Django request response process, the HTTP requests through predefined URLco

8、nf match, turn the corresponding control layer, call a specific function to deal View.Basic templates as the basis, Specific use Django template tags embedded in Web pages, and add the page to complete the page design logic.At the same time, we take advantage of the built-in Django admin interface f

9、or data editing and data management.The final completion of the entire system: the web-based administration pages and page templates, quick and timely release of information, information on books ratings, reviews and other features.Key words: Django; content management一、引言WEB20074.4 版本,占据了智能手机操作系统一半

10、以上的市场份额,谷歌也通过 Android 操2008 年作价 10 亿美金由 Sun(后者又在 2009 年被Oracle74 亿美金的高价收购SambaHadoopIT 行业这二十多年的发展,开源软件从黑客的理想之国,已经形成了一股推进计算机及相关行业不停进步的巨大力量。很多人可能尚未意识 到,我们使用的电脑中运行 有开源软件,手机中运行有开源软件,家里的电视也运行有开源软件,甚至小小的数码产品(如电子相框)PythonDjango从技术可行性来说,本系统对于用户仅需要一台装有浏览器的计算机,即可LAMPLinuxApache MySQLDjango软件,这些软件与开源免的费用。二、Dja

11、ngo 技术基础WebASP.NETJ2EEPythonDjangoDjangoDjangoApacheMySQLDjangoDjango无安全遵守工作流程。PythonDjango(一)Python 语言PythonGuido van Rossum2090PythonPython2LinuxNewMediaPython3。PythonC/C+/JavaPythonWebPythonWeb PHP,JavaASP.NETPython1/3PythonPythonCPython,也就是用CPythonPythonPython Jython,IronPython4JythonPythonJava

12、IronPythonPython.NETPython2.x3.x2.x2.7.1,3.x3.33.x2.x3.x2.x2.x2.x3.xPython20Python2.x2.xPython(二)PythonWebWebASP.NETJSP PHPWebRubyWebRuby On RailsWebWeb5Web WebRuby On RailsRubyPythonRuby应用(Application)WebZopePloneWeb.pyweb2pyPythonWeb1.6。DjangoPythonWebRuby On RailsPython应用(Application)(三)Django 框架

13、技术DjangoPythonWebPythonGuido van RossumDjangoDjangoPythonWeb2005DjangoRubyOnRailsRubyOnRails 框架的不足,从而拥有了自己的特色。DjangoCPyUGDjangoWeb7DjangoDjangoRuby On RailsDjangoMVTDjangoMVC8DjangoMVTMModel,VView,TTemplate2-1DjangoMVCCDjangoviews.py染模板文件,下面对模型,视图和模板做简单的介绍。HTTP 请求处理响应HTTP 请求处理响应(HTTP Handling)URL 映射

14、(URL Mapping)模型视图模板(Model)(View)(Template)对象关系映射(对象关系映射(ORM)模板引擎(Template Engine)数据库(数据库(Database)文件系统(File System)图 2-1 Django 架构总览图DjangoDjangostartapp,Djangomodels.py。开发者可以在这个文件中利用PythonDjangosyncdb SQLSqlite3syncdbDjangoSQLAPIDjangoSQLDjango个新的应用被DjangoDjangoviews.pyurl.pyPythonPython 丰富的类库,在逻辑代

15、码中几乎可以做任何事情。模板用于实现用户界面。DjangoHTML了所有常用的操作。Djangosettings.pyFormWebFormHTMLHTMLDjango,DjangoDjangoDjango基于类的通用视图WebWeb已确定的模式10。DjangoDjango1.3Django1.3ListView,UpdateView法的重载来满足需求。自动管理接口Django11。一个后台管理系统通常ASP.NET、J2EERubyOnRailsDjango数据浏览,查询,添加,删除,编辑等功能。基本上,日常管理中常见的管理操action通过自动管理接口的应用,很多系统功能在设计上可以获得

16、极大的简化,研ModelAdmin三、系统的设计与实现程,是实现软件从无到有的过程。(一)系统总体设计Web12。内容管理相关数据模型设计根据最初对系统设计的需求,下面将讨论图书内容管理以及评论管理数据模型。1 class BookPost(Displayable, Ownable, RichText, AdminThumbMixin):title = models.CharField(_(标题), max_length=500) categories = models.ManyToManyField(BookCategory,verbose_name=_(分类),blank=True, re

17、lated_name=bookposts) allow_comments = models.BooleanField(verbose_name=_(允许评论),default=True)comments = CommentsField(verbose_name=_(评论) rating = RatingField(verbose_name=_(评级)class TimeStamped(models.Model): class Meta:abstract = Truecreated = models.DateTimeField(null=True, editable=False) class T

18、hreadedComment(Comment):by_author = models.BooleanField(_(By the book author), default=False)replied_to = models.ForeignKey(self, null=True, editable=False,related_name=comments)rating = RatingField(verbose_name=_( 评级) objects = CommentManager()class Meta:verbose_name = _( 评 论 ) verbose_name_plural

19、= _(评论)class Rating(models.Model):value = models.IntegerField(_(Value)DjangoPython500CharFieldDjango MySQLVARCHAR CommentsCommentFieldlongtextlongtextDateTimePythonPythonreplied_t字段用于保存用户对图书的评论,这里使用了null = True, blank = 候可以不输入任何信息。与同类产品所用技术相比,DjangoB/SASP.NET JavaASP.NETMySQLSQLSQLDjangosetting.pySQ

20、LiteMySQLPostgreSQLSQLiteSQLitePythonSQLiteMySQLDjangoSQLDjangoDjangoPythonPythonDjangoPython数据库实现DjangoModel,与此同时,MySQLdbPythonDB API2.0pythonMySQLDjangoORM, Djangosetting.pyDATABASES = default: ENGINE: django.db.backends.mysql, NAME: bookmis,USER: root, PASSWORD: python, HOST: localhost,PORT: 3306

21、,WebWebHTMLDjangoDjango图 3-1 Django 请求响应流程图3-1HTTPModPythonHandlerHttpRequsetResquest MiddlewareRequestView MiddlewareHttpRequestHttpResponse,系统就跳过处理View。同时也要考虑到异常错误,异常处理中间件Middleware)便Exception MiddlewareHttpResponse,才处ExceptionDjango404/500 Response。最后,Response Middleware 发送HttpResponseURLDjangoUR

22、LDjangoURLURLURLPythonURLUnicode10字符串,且不包括“GET”方法参数或“POST”方法参数或者域名,它也不包括URLURL“GET”URLView基本模板DjangoHTMLvariables和tags特定的模板标记嵌入创建的模板页面,继而添加页面逻辑处理。variables和tags这类变量会使用值替换进行计算,以此实现基本的控制逻辑。模板可以使用 HTML、XML、CSB 和纯文本来生成。DjangoDjangoViewsetting.pyTEMPLATE_DIRSbase.html,定义站点的主要外观,格式形如:%block title%endblock

23、%block header%include header.html%endblock%block middle%endblock%block myContent%endblock%block end%include end.html%endblock%block test%endblock%child.htmlbase.html子模块所需的代码进行定义。%extends base.html%11%block title%block.super%endblock%block middle%block.super继承模板的内容%endblock%block myContent%block.supe

24、r%endblock%3-2图 3-2 图书内容管理网站页面DjangoDjango时,也可以查验管理者录入的数据。图 3-3 便是 Django 管理的登录界面。12图 3-3 Django 管理的登录界面首先在INSTALLED_APPS设置中加入“django.contrib.admin”“django.contrib.sessions”、“django.contrib.auth”、django.contrib.contenttypes也需要在bookmis文件夹内的urls.py中添加诸如一下语句:urlpatterns = patterns(book.views,(r$, metho

25、d_splitter,GET: somepage_get, POST: somepage_post),)urls.pyView“GET”和“POST”“GET”两个方法都是浏览器发送数据到服务器端,两者的区别主要在于“GET”方法更“POST”方法是需要进行数据交互,此时用户要对数据变更的结果负责。DjangoModels在一定程度上,可以避免用户的误删除。图 3-4 Django 确认删除对象结论DjangoDjangoDjango 框架设计出的论图书等功能。通过建设整个系统,完成了基于模板的网站页面和管理页面,能够快速的发布图书信息,管理图书信息及用户信息,基本达到预期的目的。但是,系统本身仍然存在不足,未来软件更新维护主要可以在数据模型的可扩展性和视图的简单13性进行扩展,使用户可以更简单、轻易的使用系统。Django 其自身的优势十分明显,简单易维护,易适应需求的变化,可以快速发布图书信息,同时系统也具有高效的安全通信机制。DjangoWebDjangoDjang

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论