Welcome 微信登录

首页 / 数据库 / MySQL / Django MongoDB Django NoSQL方案

1 安装MongoDBmongodb 主页 http://www.mongodb.org/1,下载所需要的版本,地址:http://www.mongodb.org/display/DOCS/Downloads(以windows为例,linux下应该比较简单),可以参照官方文档:http://www.mongodb.org/display/DOCS/Home2,将MongoDB加入环境变量3,设定好放置数据库文件的路径,比如d:db4,打开CMD,不要关闭这个mongod --dbpath=d:dbdata5,开始mongo
  1. MongoDB shell version: 1.4.0  
  2. url: test  
  3. connecting to: test  
  4. type "exit" to exit  
  5. type "help" for help  
如果出现这个就表示成功不要关闭这个。STEP 2 Django MongoDB可参考的官方文档:http://django-mongodb.org/topics/setup.html官方建议使用virtualenv,可以构建虚拟开发环境。(会创建独立目录的python环境)另一原因,使用的是Django-nonrel。pip install virtualenv创建环境virtualenv myprojectlinux的话,source myproject/bin/activatewindows需要打开Scripts 运行,再activate安装django-nonrelpip install hg+https://bitbucket.org/wkornewald/django-nonrel  安装djangotoolboxpip install hg+https://bitbucket.org/wkornewald/djangotoolbox  安装mongodb-enginepip install git+https://github.com/django-nonrel/mongodb-engine  windows的话,可以直接考虑(需要安装gitmecurial)和打开那三个网页然后下载文件,安装 python steup.py install安装完后,需要将djangotoolbox加入settings.py修改settings.py
  1. DATABASES = {  
  2.    "default" : {  
  3.       "ENGINE" : "django_mongodb_engine",  
  4.       "NAME" : "my_database"  
  5.    }  
  6. }
更多的设置:http://django-mongodb.org/reference/settings.html以及manage.py syncdbSTEP 3 测试可参考的中文文档:http://cn.docs.mongodb.org/manual/tutorial/write-a-tumblelog-application-with-django-mongodb-engine/创建一个新的app,然后修改models.py
  1. from django.db import models  
  2. from django.core.urlresolvers import reverse  
  3.   
  4. from djangotoolbox.fields import ListField, EmbeddedModelField  
  5.   
  6.   
  7. class Post(models.Model):  
  8.     created_at = models.DateTimeField(auto_now_add=Truedb_index=True)  
  9.     title = models.CharField(max_length=255)  
  10.     slug = models.SlugField()  
  11.     body = models.TextField()  
  12.     comments = ListField(EmbeddedModelField("Comment"), editable=False)  
  13.   
  14.     def get_absolute_url(self):  
  15.         return reverse("post", kwargs={"slug": self.slug})  
  16.   
  17.     def __unicode__(self):  
  18.         return self.title  
  19.   
  20.     class Meta:  
  21.         ordering = ["-created_at"]  
  22.   
  23.   
  24. class Comment(models.Model):  
  25.     created_at = models.DateTimeField(auto_now_add=True)  
  26.     body = models.TextField(verbose_name="Comment")  
  27.     author = models.CharField(verbose_name="Name"max_length=255
添加数据 manage.py shell创建帖子
  1. >>> from tumblelog.models import *  
  2. >>> post = Post(  
  3. ... title="Hello World!",  
  4. ... slug="hello-world",  
  5. ... body = "Welcome to my new shiny Tumble log powered by MongoDB and Django-MongoDB!"  
  6. ... )  
  7. >>> post.save()
创建评论
  1. >>> post.comments  
  2. []  
  3. >>> comment = Comment(  
  4. ... author="Joe Bloggs",  
  5. ... body="Great post! I"m looking forward to reading your blog")  
  6. >>> post.comments.append(comment)  
  7. >>> post.save()
检查帖子
  1. >>> post = Post.objects.get()  
  2. >>> post  
  3. <Post: Hello World!>  
  4. >>> post.comments  
  5. [<Comment: Comment object>]</
总结:还是不想用,虽然一直想知道原理。但是和想象中的有差距。RMAN恢复数据库ORA-01861错误Oracle 一行转多行相关资讯      MongoDB教程  Django教程  NoSQL教程 
  • Django实战教程  (09/18/2013 21:06:58)
  • MongoDB入门必读(概念与实战并重)  (07/09/2013 08:30:02)
  • MongoDB 可读性比较差的语句  (12/10/2012 13:43:47)
  • MongoDB 入门指南、示例  (07/09/2013 08:38:34)
  • VMWare的Cloud Foundry实践(二)  (12/10/2012 13:48:40)
  • Linux 下 限制 MongoDB 内存占用  (10/22/2012 17:10:01)
本文评论 查看全部评论 (0)
表情: 姓名: 字数