簡體   English   中英

如何使用django從mongodb數據庫中檢索數據?

[英]how to retrieve data from mongodb database using django?

我是mongodb和django的新手。 我在django中設置了所有modelsurls.py 但是它有時間在視圖頁面上檢索數據庫的信息。 我的數據庫看起來像:

{
"_id": {
    "$oid": "52221778633a610c58c131e6"
},
"text": "just",
"tags": [
    "mongo",
    "django"
],
"comments": [],
"title": "hello" }

數據庫名稱:事件集合名稱: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'),
)

我的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)    

那么,我們如何從數據庫中獲取文本,標題和注釋,以便它可以在網頁上顯示?

為了訪問數據庫,django有一些叫做模型的東西。 這是一個完整的fletched ORM來抽象底層數據庫的基本要素。 Django的ORM完全適用於Relational DB。 Mongo是NoSQL,我們必須尋找其他選擇。 MongoDB中使用最廣泛的ORM包括MongokitMongoEngine 這些是在Pymongo之上構建的包裝器。 為簡單起見,這里有一個簡短的代碼片段,用於使用pymongo從mongoDB獲取數據。

from pymongo import Connection

server="localhost"
port = 27017
#Establish a connection with mongo instance.
conn = Connection(server,port)

要從集合中獲取單個文檔,請使用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']

要從集合中獲取所有文檔,請使用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']

如果你想使用Django的非關系引擎,你可以寫:

from models import Post 
posts = Post.objects.all() 
for post in posts: 
    print post.title

這假設您已經在models.py中創建了一個模型類:這樣的東西:

class Post(models.Model):
    created_on = models.DateTimeField(auto_now_add=True, null=True)
    title = models.CharField()
    text = models.TextField()
    tags = ListField()

對於更有用的東西,checkout: pymongoMognoDB 使用Django的非關系引擎checkout: Django非關系引擎

謝謝!

這用於顯示mongodb中我們在django應用程序中連接的ip的所有數據庫的列表*****這對我有用*******

來自django.db導入連接導入pymongo

        mongo1 = pymongo.Connection('127.0.0.1')

        print mongo1.database_names()
In Views:

def user_add(request):
    if request.method == "POST":
     # do save process
    else:
      #brand_list = UserModule.objects.all()
      brand_list = UserModule.objects.values('department','designation','division')
      return render_to_response('useradd.html', {'brand_list': brand_list},
                          context_instance=RequestContext(request))

在Html頁面

      <select name="designation" class="form-control"  id="designation">
          <option value="Z">Select a designation</option>
              {% for brand in brand_list %}
                   <option>

               {%for i in brand.designation%}
                   {{ i }}
               {%endfor%}

              </option>
                {% endfor %}
        </select>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM