arg*_*lee 5 python django mongodb
我是mongodb和django的新手.我设置了所有models
和urls.py
django.但是它有时间在视图页面上检索数据库的信息.我的数据库看起来像:
{
"_id": {
"$oid": "52221778633a610c58c131e6"
},
"text": "just",
"tags": [
"mongo",
"django"
],
"comments": [],
"title": "hello" }
Run Code Online (Sandbox Code Playgroud)
数据库名称:事件集合名称:polls_post
我urls.py
看起来像:
from django.conf.urls.defaults import patterns, include, url
from django.views.generic import ListView, DetailView
from polls.models import Post
urlpatterns = patterns('',
url(r'^time/$','polls.views.current_datetime'),
url(r'^events/$','polls.views.events'),
)
Run Code Online (Sandbox Code Playgroud)
我views.py
看起来像:
from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>" % now
return HttpResponse(html)
def events(request):
html = "<html><body>title is:<h1></h1></body></html>"
return HttpResponse(html)
Run Code Online (Sandbox Code Playgroud)
那么,我们如何从数据库中获取文本,标题和注释,以便它可以在网页上显示?
为了访问数据库,django 有一个叫做模型的东西。这是一个完整的 ORM,用于抽象底层数据库的具体细节。Django 的 ORM 对于关系数据库来说功能齐全。Mongo 是 NoSQL,我们必须寻找其他选择。MongoDB 使用最广泛的 ORM 包括Mongokit和MongoEngine。这些是构建在 Pymongo 之上的包装器。为简单起见,这里有一个简短的代码片段,用于使用 pymongo 从 mongoDB 获取数据。
from pymongo import Connection
server="localhost"
port = 27017
#Establish a connection with mongo instance.
conn = Connection(server,port)
Run Code Online (Sandbox Code Playgroud)
要从集合中获取单个文档,请使用 find_one。
poll = conn.events.polls_post.find_one({},{"title" : 1}) #first parameter is the query, second one is the projection.
print "Title : ", poll['title']
Run Code Online (Sandbox Code Playgroud)
要从集合中获取所有文档,请使用 find。
polls = conn.events.polls_post.find({},{"title" : 1})#first parameter is the query, second one is the projection.
for poll in polls:
print "Title : ",poll['title']
Run Code Online (Sandbox Code Playgroud)
如果你想使用Django的非关系引擎,你可以这样写:
from models import Post
posts = Post.objects.all()
for post in posts:
print post.title
Run Code Online (Sandbox Code Playgroud)
这假设您已经在 models.py 中创建了一个模型类:如下所示:
class Post(models.Model):
created_on = models.DateTimeField(auto_now_add=True, null=True)
title = models.CharField()
text = models.TextField()
tags = ListField()
Run Code Online (Sandbox Code Playgroud)
如需更多有用的内容,请查看:pymongo和MognoDB。要使用 Django 的非关系引擎结帐:Django Non Relational Engine
谢谢!