基于Python的博客设计与开发毕业设计.pdf.docx
- 文档编号:605830
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:22
- 大小:613.73KB
基于Python的博客设计与开发毕业设计.pdf.docx
《基于Python的博客设计与开发毕业设计.pdf.docx》由会员分享,可在线阅读,更多相关《基于Python的博客设计与开发毕业设计.pdf.docx(22页珍藏版)》请在冰点文库上搜索。
摘要
目前,知识的学习十分的重要,我们要做到的不是固步自封,而是应该共享给所有的人,现在知识的学习还是很不方便。
博客的开发与设计就能够实现该功能,用户发表博文后,其他用户可以看到,同时用户也可以记录一些重要的信息等。
在软件开发活动中,无论何种服务,应用系统的开发仍然是开发的主题,博客就是这样一个B/S模式的系统。
一个庞大的博客管理系统面向的用户很多,提供的功能也很多,如提供用户注册、用户管理、个人博客、发表博文、删除博文、留言、以及搜索博文等。
本系统采用了Django框架进行开发。
本文主要分析了该系统实现的相关技术原理与数据设计,给出了博客的系统架构,并对架构及管理模块结构作了划分及设计。
本系统采用了当前流行的B/S 结构,通过运用Python、Django 、TinyMCE、JQuery、Apache和Sqlite数据库等软件的强大功能完成了该系统的设计。
本系统完成了用户注册功能,用户需要设定自己的用户名和密码以及自己的基本信息;用户登录功能、管理员后台登录功能,用户只有输入正确的用户名、密码才可以登录;用户修改密码功能,用户修改密码的实现只能在登陆的情况下;管理员修改用户的所有信息功能,管理员可以修改用户的用户名与密码、博客的博文及博文的点击量;用户发表博文,用户登陆后可以在自己的博客中发表博文,同时也可以进行留言。
查看精华帖,用户不论登陆与否,都可以查看精华帖(点击量最高的前5条);用户删除博文,用户登陆后可以删除自己的博文;用户发表添加分类,用户登陆后,当发表博文时,可以自定义添加分类。
下面主要对博客的开发与设计进行了概述、系统开发环境、系统分析、设计与实现等的介绍。
关键词:
Python,Django,TinyMCE,JQuery,Bootstrap
Abstract
Currently,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
目录
1系统的相关概述 1
1.1Django简介 1
1.2Bootstrap简介 1
1.3JQuery简介 1
1.4TinyMCE简介 1
1.5Sqlite3简介 2
2系统开发和环境介绍 2
2.1基本环境 2
2.1.1安装Apache 2
2.1.2配置Apache 2
2.1.3安装Python 3
2.1.4安装Django 4
3系统分析 4
3.1开发背景 4
3.2系统功能需求分析 5
3.3需要实现的功能及功能模块 5
3.3.1用户注册 5
3.3.2用户登录 5
3.3.3修改用户密码 5
3.3.4查看博文 5
3.3.5发博文 5
3.3.6查看个人信息 6
3.3.7删除博文 6
3.3.8评论 6
3.3.9注销 6
3.4系统流程分析 6
3.4.1系统的功能图 6
3.4.2系统的用例图 8
3.4.3系统的流程图 8
4系统设计与实现 9
4.1数据库设计 9
4.1.1角色分析 9
4.1.2数据库建表(models) 10
4.3系统前台设计 10
4.4部分功能代码 14
4.4.1用户注册 14
4.4.显示博文详细内容 14
4.4.1分页 15
5总结与展望 16
6参考文献 17
1概述
1.1Django简介
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框架。
1.2Bootstrap简介
Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。
它由Twitter的设计师MarkOtto和JacobThornton合作开发,是一个CSS/HTML框架。
Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。
Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的BreakingNews都使用了该项目。
1.3JQuery简介
JQuery是继prototype之后又一个优秀的Javascript框架。
它是轻量级的js库,它兼容CSS3,还兼容各种浏览器(IE6.0+,FF1.5+,Safari2.0+,Opera9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。
JQuery使用户能更方便地处理HTML
documents、events、实现动画效果,并且方便地为网站提供AJAX交互。
JQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成
熟的插件可供选择。
JQuery能够使用户的html页面保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。
1.4TinyMCE简介
TinyMCE是一个轻量级的基于浏览器的所见即所得编辑器,由JavaScript写成。
它对IE6+和Firefox1.5+都有着非常良好的支持。
能够满足大部分网站的需求,并且功能配置灵活简单。
另一特点是加载速度非常快,而且可以让用户自由的定制,TinyMCE是一个根据LGPLlicense发布的自由软件,你可以把它用于商业应用。
1.5SQLite简介
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安装和配置Apache
1.从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_log
2.1.3安装、配置Python
安装Python后,运行Python,就会进入Python交互模式,如下图2-3
图2-3.Python交互模式图2-4.配置Python
2.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系统的流程图
开始
注册
登录
身份判断
User
Admin
Y
安全退出
Y
管理员主页面
普通用户主页面
Y
Y
图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.user
blog=Blog.objects.get(id=blog_id)blog.hitcount+=1
blog.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=True
else:
flag=False
lmsg=blog.lmsg.all()
return render_to_response('show_blog.html', RequestContext(request,
{'request':
request,\
'blog':
blog,'lmsg':
lmsg,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Python 博客 设计 开发 毕业设计 pdf