使用Django框架实现游戏网站搭建
完整工程链接点击打开链接
上一篇中我们使用了Javascript和Html5实现了弹球游戏,而在本文中我们希望以其为基础实现游戏网站,能够实现用户的注册登录,游戏成绩记录,排名显示,微博分享等功能。
最终效果:
2. 网站的搭建和服务器的搭建
2.1 网站整体构成
网站的搭建我使用django框架。
2.1.1 数据库设计
User:
Field |
Type |
Null |
Key |
Default |
Description |
Name |
Varchar(50) |
No |
Primary |
用户ID |
|
Password |
Varchar(50) |
No |
用户密码 |
||
BestScore |
Integer |
No |
0 |
用户最高分 |
|
Name |
Varchar(20) |
No |
法人姓名 |
对应的Models;
class Player(models.Model):name = models.CharField(max_length=50, primary_key =True)password = models.CharField(max_length=50)bestScore = models.PositiveIntegerField()def __unicode__(self):return u'%s %s %s %s %s' % (self.name, self.password, self.weibo, self.weboPw, self.bestScore)
2.1.2 网站设计
网站架构图:
URL设置
(r'^$', views.login),(r'^index/$', views.index),(r'^ballgame/$', views.game),(r'^signup/$', views.signup),(r'^signresult/$', views.signResult),(r'^login/$', views.loginResult),(r'^storeScore/(?P<score>[\d]*)/$', views.storeScore),(r'^logout/$', views.logout),(r'^site_media/(?P<path>.*)$','django.views.static.serve',{'document_root': settings.STATIC_PATH}),
对应的Views:
要点:登录控制,登录之后向request中写入session表示已经登录,在受到每个URL请求时在views中进行判断,如果session中没有这个信息,就返回登录页面。登出则是在request中删除这个session信息。
//登录结果
def loginResult(request):if request.method == "POST":username = request.POST["username"]try:user = Player.objects.get(name = username)except ObjectDoesNotExist:return render_to_response("login.html")passwd = request.POST["password"]if passwd != user.password:return HttpResponseRedirect("/")request.session['user_id'] = user.name;return HttpResponseRedirect("/index/")
//登录页
def login(request):if "user_id" in request.session:return HttpResponseRedirect("/index/")else:return render_to_response('login.html')
//注册页
def signup(request):return render_to_response('signup.html')
//登出
def logout(request):try:del request.session['user_id']except KeyError:passreturn render_to_response('login.html')//index页
def index(request):
//使用request中的session控制登录if "user_id" in request.session:res = Player.objects.order_by('-bestScore')[0:9]user = Player.objects.get(name=request.session["user_id"])score = user.bestScorecount = 1ares = Player.objects.order_by('-bestScore')for p in ares:if p.name==request.session["user_id"]:breakelse:count= count+1return render_to_response('index.html', {"username": request.session["user_id"], "bestPlayer": res, "score": score, "rank": count})else:return render_to_response('login.html')
//游戏页
def game(request):if "user_id" in request.session:return render_to_response('ballGame.html', {"username": request.session["user_id"]})else:return HttpResponseRedirect("")
//注册结果页
def signResult(request):if request.method == "POST":username = request.POST["username"]try:existed = Player.objects.get(name = username)except ObjectDoesNotExist:passwd = request.POST["password"]p = Player(name = username, password= passwd, bestScore=1)p.save()return render_to_response("signSucceed.html")return HttpResponseRedirect("/signup/")
//保存得分
def storeScore(request,score):if 'user_id' in request.session:userid = request.session['user_id']try:user = Player.objects.get(name=userid)except ObjectDoesNotExist:return HttpResponseRedirect("")oldScore = user.bestScore;print type(oldScore)print type(score)score = long(score)if score > oldScore:print "yes"bestScore = scoreuser.bestScore = scoreuser.save()else:bestScore = oldScorereturn render_to_response("score.html",{"username":user.name, "thisscore":score, "bestScore": bestScore})else:return HttpResponseRedirect("")
2.1.3 服务器的搭建
本网站选择使用Apache服务器,apache服务器默认不支持python。所以需要加载外部模块。这里选择使用module_wsgi。
配置步骤:
A.从网站上下载编译好的module_wsgi.so,放置到apache安装目录/modules文件夹。在apache安装目录/conf/httpd.conf文件中添加以下内容已载入该模块。
LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias / "F:/danjo/game/django.wsgi" //设置/url对应文件。
Alias /site_media F:/danjo/game/static //设置/site_media url 所对应目录。本网站将所有的静态加载内容放在了该文件夹。<Directory />Options FollowSymLinksAllowOverride NoneOrder deny,allowDeny from allow此处为设置对/根目录的访问权限
</Directory><Directory "F:/danjo/game"> //该目录为django工程所在目录Order deny,allowallow from all
</Directory>
在django工程目录中添加文件。Django.wsgi。
import os
import sys
import django.core.handlers.wsgi
sys.path.append(r'F:/danjo/game')
os.environ['DJANGO_SETTINGS_MODULE'] = 'game.settings'
application = django.core.handlers.wsgi.WSGIHandler()
这样之后就可以在apache中访问我们的django框架搭建的网站了。
3. 微博功能的实现
微博分享功能需要使用微博API,这里选择使用javascript API。Api的使用需要在微博开放平台注册应用,并表明网站所有权。所有需要我们的网站能在外网登录。所以需要注册域名,这里我选择使用花生壳动态域名服务器。并使用了它的免费域名kkopq.xicp.net。
做完以上几步后,实现微博分享就很简单了。在需要微博的页面添加以下内容:
<script src="http://tjs.sjs.sinajs.cn/open/api/js/wb.js?appkey=2556191936" type="text/javascript" charset="utf-8"></script> //这是微博api的库 注意需要添加注册应用后获得appkey。
定义分享按钮:
<p><button class="btn btn-success btn-hg" style="width:200px;height:50px" type="button" id="wb_publish" >share</wb:button></p><script>WB2.anyWhere(function(W){W.widget.publish({id : 'wb_publish',default_text : 'I have gotten {{score}} points in the KKball game! Come to play with me at kkopq.xicp.net![耶][耶][耶]'});});</script>
4.html UI 设计。
网页UI我是用了Flat UI框架。
使用Django框架实现游戏网站搭建相关推荐
- 游戏网站搭建实例:黑色沙漠中文wiki站搭建(1)
游戏网站搭建实例:黑色沙漠中文wiki站搭建 下面以黑色沙漠这个游戏做实例解答一个游戏网站从无到有! 仅仅是拿黑色沙漠来练手,如果真的考虑自己做一个游戏网站来说黑沙是不靠谱的 ·游戏太大,要做的资料就 ...
- Django框架学习——1—(虚拟环境搭建、MVC思想与Django的MVT区别、Django项目的创建、运行Django项目、项目结构介绍)
1.虚拟环境搭建 创建新的Django框架的虚拟环境: 注意:如果没有pipenv指令,需要安装这个支持库,同时需要记住配置它的环境变量,否则虚拟环境会安装在默认文件夹下(一般是C:\Users\Ad ...
- 游戏网站搭建,不止是一个网站那么简单
现在游戏市场的火爆带来了很多新商机,游戏代理也变成了炙手可热的创业项目.尤其对于年轻人来说,本身就玩游戏,又对游戏和网络有所了解,游戏代理听上去是个不错的创业选择. 说到做游戏代理,很多人第一反应是: ...
- 基于python下django框架 实现校园网站系统详细设计
前言介绍(开发目的和意义) 校园网站是当前信息化的表现.在没有电脑和互联网的时代.要想了解校园信息.专业分院信息.老师信息等只能通过纸质的报纸或者杂志.在PC电脑和互联网的发展下,现在只有在有网络的地 ...
- python中型项目---Django框架---图书管理网站的制作-01
图书管理网站的制作详解(个人学习django框架的笔记) 第01号笔记最终成果图: 当前笔记所完成的网站的功能简介: 1 网页从数据库获得图书名称 2 点击新增按钮后增加一本书,当前名为"流 ...
- 基于Django框架的sysinfo项目搭建---系统信息监控(主机名,内核版本等)
目录 主机信息监控 项目搭建 基础框架构建 首页系统信息展示完善 主机信息监控 项目搭建 详情见前篇博客 创建子应用host并且设置本地化 数据库表的创建和超级用户的创建 git管理项目(requir ...
- Django框架学习(1) —— 环境搭建
最近也开始学习Django,哔哩哔哩视频地址:https://www.bilibili.com/video/BV1CJ411G79F?p=119 菜鸟教程上有Django的介绍这里不多说. 开发环境 ...
- python毕业设计作品基于django框架企业公司网站毕设成品(6)开题答辩PPT
整个项目包含了:开题报告 + 开题报告PPT + 任务书 + 中期报告 + 论文模板 + 答辩PPT等 + 项目源码 主要安介绍了系统在开发过程中所应用到的一些关键的技术 主要python技术介绍:框 ...
- python毕业设计 基于django框架企业公司网站系统毕业设计设计与实现
开发环境 开发语言:python:Python版本:3.8.7 开发框架:Django:Django版本:4.x 数据库:mysql:数据库版本:mysql8 数据库管理工具:navicat10+ 开 ...
最新文章
- Jupyter Notebook 中查看当前 运行哪个python
- itext转html为pdf 锚点,ITEXT输出pdf..docx
- Linux中如何将文件dump成16进制值
- orcale存储过程学习之路(一)
- LVS NAT/DR
- Lync Server 2013:边缘服务器 -- Set CA Error
- 深度学习之 DCN(Deformable Convolution)-可变形卷积
- 人生没有后悔药,云主机可以有“时光机”
- linux用户管理和群界面怎么打开,Linux命令行界面下的用户和组的管理
- easydarwin 安装_centos服务器安装部署搭建 EasyDarwin【步骤详解】
- 倒立摆状态反馈控制——分析、建模与仿真(matlab)
- 手机射频电路全面解析
- 第16周收录103起融资,芯片创企为热点丨潜在周波啊
- PCB Layout初学者必会知识总结(转)
- moment.js时间操作
- 数据库原理及应用-李唯唯主编-实验3-4
- leecode--链表对折
- 安卓的平板电脑,请问有没有类似Ghost的备份还原软件?(for 安卓)
- 我被Algo套死了......
- uboot中ftd命令