说到后端肯定要涉及到数据存储,不过开始我也没设计到底用什么来存储数据,是另一个哥们来弄,为什么不用自带的sqlite也不是很清楚,开始使用的couchDB还可以从浏览器打开一个图形化界面,还挺不错的,后来好想遇到点问题,最后改成mongodb了,结果他就萎了,剩下的只能自己来咯。
在做这个之前我是一点也没接触过数据库,最多也就听说过SQL。一上来就是noSQL,我还挺懵逼的。后来慢慢看了一些资料才知道是not only sql的意思。传统的sql是关系型数据库,把数据以表的形式组织,性能面对海量数据需求时有瓶颈,所以nosql因运而生。当然,我这个应用对性能没啥要求,可能就是我那个哥们想练练手,熟悉一下,结果还没开始,自己先萎了。
具体的操作https://blog.csdn.net/sun754276603/article/details/49179237这一系列讲的很详细,我就简单讲讲我用的吧。
首先就是django和mongodb怎么结合。第一得安装mongoengine,pip就可以。然后在django的settings文件中设置数据库。
DATABASES = {
'default': {
'ENGINE': None, # 把默认的数据库连接至为None
}
}
from mongoengine import connect
connect('oath') # 连接的数据库名称
之后在app的models里面新建数据模型
class oath(Document):
""" 誓言 """
meta = {
'collection': 'oath', # 定义集合名称
}
name = StringField(max_length=32) # max_length最大长度,required=True 不能不填写
oathTitle=StringField()
oathText = StringField()
openid=StringField()
avatarUrl=StringField()
image=StringField()
tx_hash=StringField()
time=StringField()
pNum=StringField()。
然后在视图文件里面就可以使用了。先from .models import oath和from mongoengine import *引入数据模型和mongoengine,然后connect('oath')连接到数据库。剩下就是在views里面增删改查的操作了。
和couchDB相比它没有一个网页界面来管理数据库,还比较麻烦。只能在linux命令行里输入mongo进入mongodb的管理程序,然后使用show命令看现在有什么数据库,使用use命令转到目标数据库,再用find().pretty()显示内容。