【计算机软件毕业设计】基于Python的博客设计与开发_第1页
【计算机软件毕业设计】基于Python的博客设计与开发_第2页
【计算机软件毕业设计】基于Python的博客设计与开发_第3页
【计算机软件毕业设计】基于Python的博客设计与开发_第4页
【计算机软件毕业设计】基于Python的博客设计与开发_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

河北农业大学本科毕业论文(设计)题目:基于Python的博客设计与开发摘要目前,知识的学习十分的重要,我们要做到的不是固步自封,而是应该共享给所有的人,现在知识的学习还是很不方便。博客的开发与设计就能够实现该功能,用户发表博文后,其他用户可以看到,同时用户也可以记录一些重要的信息等。在软件开发活动中,无论何种服务,应用系统的开发仍然是开发的主题,博客就是这样一个B/S模式的系统。一个庞大的博客管理系统面向的用户很多,提供的功能也很多,如提供用户注册、用户管理、个人博客、发表博文、删除博文、留言、以及搜索博文等。本系统采用了Django框架进行开发。本文主要分析了该系统实现的相关技术原理与数据设计,给出了博客的系统架构,并对架构及管理模块结构作了划分及设计。本系统采用了当前流行的B/S结构,通过运用Python、Django、TinyMCE、JQuery、Apache和Sqlite数据库等软件的强大功能完成了该系统的设计。本系统完成了用户注册功能,用户需要设定自己的用户名和密码以及自己的基本信息;用户登录功能、管理员后台登录功能,用户只有输入正确的用户名、密码才可以登录;用户修改密码功能,用户修改密码的实现只能在登陆的情况下;管理员修改用户的所有信息功能,管理员可以修改用户的用户名与密码、博客的博文及博文的点击量;用户发表博文,用户登陆后可以在自己的博客中发表博文,同时也可以进行留言。查看精华帖,用户不论登陆与否,都可以查看精华帖(点击量最高的前5条);用户删除博文,用户登陆后可以删除自己的博文;用户发表添加分类,用户登陆后,当发表博文时,可以自定义添加分类。下面主要对博客的开发与设计进行了概述、系统开发环境、系统分析、设计与实现等的介绍。关键词:Python,Django,TinyMCE,JQuery,BootstrapAbstractCurrently,thestudyofknowledgeisveryimportantandwedonotwanttorestonourlaurels,butshouldbesharedtoallpeople,andnowthestudyofknowledgeisveryconvenient.Blogdevelopmentanddesignwillbeabletoachievethisfunction,theuserBowen,otheruserscansee,andyoualsocanrecordsomeimportantinformation.Insoftwaredevelopmentactivities,regardlessofservice,applicationdevelopmentsystemdevelopmentisstillthesubjectofblogissuchaB/Smodesystem.Ahugeblogmanagementsystemformanyusers,providingmanyfunctions,suchasprovidinguserregistration,usermanagement,personalblog,Bowen,Bowendeleted,messages,andsearchBowenandsoon.ThesystemusestheDjangoframeworkfordevelopment.Thispaperanalyzesthetechnicalprinciplesrelatedtoimplementationofthesystemanddatadesign,systemarchitecturegivestheblog,andthestructureandmanagementmodulestructureanddesignweredivided.ThesystemusesthepopularB/Sstructure,throughtheuseofPython,Django,TinyMCE,JQuery,ApacheandSqlitedatabasesoftwaresuchascompletionofthepowerfulfeaturesofthesystemdesign.Thesystemcompletedtheuserregistrationfeature,usersneedtosetupyourownusernameandpassword,andtheirbasicinformation;userloginfunction,theadministratorback-logfunction,theuseronlyenterthecorrectusernameandpasswordbeforeyoucanlog;usertomodifythepasswordfunctiontheusertomodifythepasswordcanonlyberealizedinthecaseoflanding;administratortomodifytheuseralltheinformation,theadministratorcanmodifytheuser'susernameandpassword,andblogBowenBowenhits;userBowen,userlogininhisblogBowen,butcanalsobeamessage.ViewDigestposts,theuserregardlessoflandingornot,youcanviewtheessenceofsoftware(hitsThetopfive);UserdeletedBowen,userlogincandeleteyourownblog;Userpublishedtoaddcategories,userlogin,whenBowen,youcanaddcustomcategories.Hereontheblogmainlygivesanoverviewofthedevelopmentanddesign,systemdevelopmentenvironment,systemsanalysis,designandimplementationofintroduction.KeyWord:Python,Django,TinyMCE,JQuery,Bootstrap目录TOC\o"1-3"\u1系统的相关概述 11.1 Django简介 11.2 Bootstrap简介 11.3 JQuery简介 11.4 TinyMCE简介 11.5Sqlite3简介22系统开发和环境介绍 22.1基本环境 22.1.1安装Apache 22.1.2配置Apache 22.1.3安装Python 32.1.4安装Django 43系统分析 43.1开发背景 43.2系统功能需求分析 53.3需要实现的功能及功能模块 53.3.1用户注册 53.3.2用户登录 53.3.3修改用户密码 53.3.4查看博文 53.3.5发博文 53.3.6查看个人信息 63.3.7删除博文 63.3.8评论 63.3.9注销 63.4系统流程分析 63.4.1系统的功能图 63.4.2系统的用例图 83.4.3系统的流程图 84系统设计与实现 94.1数据库设计 94.1.1角色分析 94.1.2数据库建表(models) 104.3系统前台设计 104.4部分功能代码 144.4.1用户注册 144.4.显示博文详细内容 144.4.1分页 155总结与展望 166参考文献 17PAGE191概述Django简介Django是应用于Web开发的高级动态语言框架,最初起源于美国芝加哥的Python用户组,具有新闻从业背景的AdrianHolovaty是Django框架的主要开发者。在Adrian的带领下,Django小组致力于为Web开发者贡献一款高效完美的Python开发框架,并且在BSD开放源代码协议许可下授权给开发者自由使用。Django拥有完善的模板机制、对象关系映射机制以及用于动态创建后台管理界面的功能,利用Django,可以快速设计和开发具有MVC层次的Web应用。为了打消开发者选用Django框架时的疑虑,首先分析一下Django引人注目的特性。在实体映射方面,Django的对象相关映射机制帮助开发者在Python类中灵活定义数据模型,并且Django具有功能丰富的动态数据库访问API,可以大幅度简化书写SQL语句的繁杂工作。同时Django支持包括Postgresql,MySql,Sqlite,Oracle在内的多种后台数据库。Django的URL分发设计的十分简洁美观,不会在链接中产生一大串杂乱且难以理解的字符。使用Django可扩展的内置模板,可以将模型层、控制层与页面模板完全独立开来进行编码。Django还具有自己的Cache系统,如果需要,也可以根据开发者的要求嵌套其他的Cache框架。Bootstrap简介Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。它由Twitter的设计师MarkOtto和JacobThornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的BreakingNews都使用了该项目。JQuery简介JQuery是继prototype之后又一个优秀的Javascript框架。它是轻量级的js库,它兼容CSS3,还兼容各种浏览器(IE6.0+,FF1.5+,Safari2.0+,Opera9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。JQuery使用户能更方便地处理HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。JQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。JQuery能够使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。TinyMCE简介TinyMCE是一个轻量级的基于浏览器的所见即所得编辑器,由JavaScript写成。它对IE6+和Firefox1.5+都有着非常良好的支持。能够满足大部分网站的需求,并且功能配置灵活简单。另一特点是加载速度非常快,而且可以让用户自由的定制,TinyMCE是一个根据LGPLlicense发布的自由软件,你可以把它用于商业应用。SQLite简介SQLite是遵守ACID[1]的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。[2]不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。2系统开发和环境介绍2.1基本环境在Linux系统下,以Python语言为基本开发语言,通过运用Django框架、Sqlite3数据库、Apache服务器等相关知识,利用Python语言的便于快速开发的特性及MVC设计思想,设计一个博客博文管理方案,模拟一个博客系统。2.1.1安装Apache由于使用的操作系统是Linux,需要安装Apache。2.1.2安装和配置Apache1.从RHEL6系统光盘中获得软件包: 在shell下执行:ls/media/cdrom/Server|grephttpd 找到后直接rpm安装2.安装后的主要目录与文件 服务目录:/etc/httpd/ 主配置文件:/etc/httpd/conf/httpd.conf 网页目录:/var/www/html/ 服务脚本:/etc/init.d/httpd 执行程序:/usr/sbin/httpd 访问日志:/var/log/httpd/access_log 错误日志:/var/log/httpd/error_log2.1.3安装、配置Python安装Python后,运行Python,就会进入Python交互模式,如下图2-3图2-3.Python交互模式图2-4.配置Python2.1.4安装Django首先要下载Django安装包,在Linux的shell模式下解压后,进入,执行下面的语句:3系统分析3.1开发背景Python程序设计语言在是今年来开始流行的一种编程语言,它以其简单易懂、适合于快速开发、能够跨平台操作吸引了人们的兴趣。事实上,Python的目前的地位是无法和Java、C等相比的的,但就发展前景而言,它确实独一无二的。它是一种完全可信赖的程序设计语言,在国外十分的流行,就目前而言,国内也开始逐渐认识它。其固有的可靠性与安全性不仅令程序员放心,也令使用程序的用户放心。Python内建了对网络编程,数据库连接、多线程等高级程序设计任务的支持。目前,在软件开发活动中,无论何种服务,应用系统的开发仍然是开发的主题,博客管理系统就是这样的应用系统。用户希望能够发表一下个人的想法,对各种言论进行评论等,这时就用到了博客。3.2系统功能需求分析一个好的系统,不仅包括前台的美观同时后台的优化也很重要,本系统运用Django+Bootstrap构架与MVC设计思想,用户可以完成用户注册、登录、注销、修改密码、发表博文、评论、删除博文、查看精华博文、搜索博文等功能,管理员具有对用户的信息进行修改、删除的功能,同时能够做到对博文的管理。本系统会根据用户的访问一篇博文次数,进行点击量的记录,从而形成精华帖。用户可以创建分类,同时在该分类下发表博文,同时设置了背景音乐。3.3需要实现的功能及功能模块3.3.1用户注册用户登录是一个网络系统必需的功能之一,用户想要使用系统提供的功能,就必须先拥有一个帐户,从而拥有自己的博客。因此要到系统中注册一个帐户,用户在注册时系统要求用户输入注册信息,包括用户名,密码,确认密码(用户编号自动增长),用户E-mail、以及用户头像等,如果用户帐户已经存在或者用户输入的信息格式不正确系统将向用户显示相应错误的提示信息,并提示用户使用其他的用户帐户或者输入正确的信息,注册完以后,可以进行登录。3.3.2用户登录注册成功后,用户可以使用刚刚注册的账户登录到系统,登录页面要求用户输入用户名和密码。在输入用户名和密码之后,系统将验证用户帐户和密码是否正确,如果验证成功,就会弹出一个登陆成功的框,并跳转到用户的空间界面。否则,系统弹出一个显示用户帐户或密码错误的提示信息的框。3.3.3修改用户密码用户只有在登陆成功后才可以修改密码,用户能够知道旧密码。在修改密码界面,用户需要输入旧密码、新密码和确认新密码,只有当旧密码正确,两次输入的新密码相同时,用户才能够进行修改,同时跳转界面;否则系统将显示错误信息。3.3.4查看用户当用户进入首页时,系统会提供可能认识的人,点击后可以进入该用户的博客。3.3.5查看博文用户可以点击一条博文的title进行详细的查看该博文的内容,在查看界面,登陆用户可以静心留言,匿名用户无法留言。3.3.6发博文用户成功登录之后,可以发博文。点击发博文按钮后,进入发博文界面,用户需要填写标题、内容,同时选择分类,点击发表即可发到自己的博客上。在发表页面,分类后有一个添加分类,用户可以在此添加分类。3.3.7查看个人信息用户登陆后可以查看自己的用户信息。3.3.8删除博文用户登陆后可以在自己的博客中删除自己希望删除的博文,直接点击标题后的删除链接即可。3.3.9评论用户登陆后可以对别人的博文进行评论。3.3.10注销由于某种原因,用户可以退出该系统的登陆。3.4系统流程分析本网站是一个博客网站,实现了用户的发博文、评论博文的功能。前台主页,包括用户首页,用户注册页面,用户修改信息页面,用户个人博客页面、精华帖页面、博文详细内容页面。后台控制,运用Django框架,用户注册后,保存用户的信息;登陆成功后,用户能够发表博文、评论等。3.4.1系统的功能图本系统的功能图如图所示:博客博客登录登录注册查看个人信息修改密码听音乐安全退出系统用户登录成功管理员登录删除博文评论博文发表博文查看博文查看用户查看用户信息修改用户信息用户管理管理员登录删除用户添加音乐管理用户博文图3-1系统功能图3.4.2系统的用例图查看个人信息查看个人信息发博文发博文评论评论搜索博文搜索博文修改密码修改密码3.4.3系统的流程图开始开始注册YYYAdminUserY登录普通用户主页面管理员主页面安全退出身份判断图3-3系统流程图4系统设计与实现4.1数据库设计用户博文评论分类4.1.1角色分析用户博文评论分类 通过功能我们找到了四个角色,接下来就该分析各各角色之间的关系。在这里我们首先要分析出博客应该是以用户为主的,用户登陆进入自己的博客,显示自己的博文,所以是通过用户找到的博文,以用户为主,同时分析出用户与博文之间是多对多的关系。博文与分类是以分博文为主的,博文与分类之间是多对一的关系。博文与评论之间是一对多的关系,大家都是先看博文再看评论,所以以博文为主。分类与评论之间没有关系。4.1.2数据库建表(models中创建的表)4.3系统前台设计(1)系统首页:(2)用户注册:(3)用户登录界面(4)用户修改密码(5)用户发博文(5)查看博文(6)音乐播放器4.4部分功能代码4.4.1用户博客注册defregist(request):"""注册用户"""ifrequest.method=='POST':rform=RForm(request.POST)rimg=UserAnother(request.POST,request.FILES)ifrform.is_valid()andrimg.is_valid():username=rform.cleaned_data['username']password=rform.cleaned_data['password']email=rform.cleaned_data['email']headimg=rimg.cleaned_data['headimg']user=User.objects.create_user(username=username,password=password,email=email)UserProfile.objects.create(user=user,headimg=headimg)user.save()returnHttpResponseRedirect('/login/')else:rform=RForm()rimg=UserAnother()context={'request':request,'rf':rform,'rg':rimg}returnrender_to_response('regist.html',RequestContext(request,context))4.4.2显示博文详细内容defshow_blog(request,username,blog_id):flag1=''user=request.userblog=Blog.objects.get(id=blog_id)blog.hitcount+=1blog.save()ifrequest.method=='POST':txt_ly=request.POST.get('liuy')iftxt_ly:lmg=LMsg.objects.create(content=txt_ly,time=datetime.now(),user=user)blog.lmsg.add(lmg)blog.save()else:flag1='留言不可为空!'blog_user=User.objects.get(username=username)ifuser.is_authenticated():flag=Trueelse:flag=Falselmsg=blog.lmsg.all()returnrender_to_response('show_blog.html',RequestContext(request,{'request':request,\'blog':blog,'lmsg':lmsg,\"blog_user":blog_user,'flag':flag,'flag1':flag1}))4.4.3分页的实现defpaging(request,list1,n):paginator=Paginator(list1,n)try:page=int(request.GET.get('page',1))exceptKeyError:page=1try:list2=paginator.page(page)except(EmptyPage,InvalidPage):list2=paginator.page(paginator.num_pages)returnlist25总结与展望此次毕业设计是以Python语言为基本开发语言,通过运用Django框架(版本1.4),Bootstrap,JQuery,Sqlite3等相关知识,利用Python语言的面向对象的特性及MVC设计思想,设计一个用户管理方案,模拟一个电影院售票管理系统。在完成毕业设计的过程中不断的遇到问题解决问题的循环过程中完成的,就是在这样的过程中,我才不断的学习新的知识;我才更好的、灵活的运用这些技术,并且通过向老师,同学以及从事相关工作的人的交流,让我的思路,思维更加开阔。通过这次的毕业设计,让我对于以前所学的知识能够做到更好的运用。总之,本次设计加强了我的独立学习和运用知识解决实际问题的能力,也是对我这几年以来在学校系统学习的基础理论课程、专业知识及基本技能的一次全面的检验,并且达到了巩固、扩大、深化所学的专业技术的目的,使自身的研究、实践能力得到了一定的提高。6参考文献1.MagnusLieHetland著Python基础教程人民邮电出版社2.WesleyJ.Chun著宋吉广译Python核心教程人民邮电出版社3.Bootstrap参考网址:http://twitter.github.io/bootstrap/;4.DjangoDocument参考网址:/en/1.4/;5.陶国荣著JQuery权威指南机械工业出版社6.Jack著DjangoBook人民邮电出版社致谢在历时半年的毕业设计中,要感谢我的指导教师李阅历老师,从本次设计实现的基本功能到设计中遇到的问题,都离不开老师的教诲帮助和严格的要求,这样我才顺利达到了设计的要求。当然这与学校提供的优越的环境,完善的设备和同学之间日益加深的默契和团队精神分不开。正因为此我才顺利地完成了这次毕业设计,同时也从中获益匪浅。在此衷心地感谢所有关心本次毕业设计和实现的老师和同学,能够给我这次学习和交流的机会。同时向关心和支持我学习的所有曾帮助过我的老师、同学和朋友们表示真挚的谢意!感谢他们对我的关心和支持!最后谨向我的论文评阅人、答辩委员会的各位老师表示最真诚、最衷心的感谢!基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教

温馨提示

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

评论

0/150

提交评论