【问题标题】:Get values from mongoDB column into HTML table using Django使用 Django 将 mongoDB 列中的值获取到 HTML 表中
【发布时间】:2019-02-20 19:51:18
【问题描述】:

我想从 HTML 表中的 mongoDB 列中获取值。

这是在views.py中

import pymongo
from pymongo import MongoClient
from pymongo.read_preferences import ReadPreference


myclient = pymongo.MongoClient("mongodb://00.00.00.0:27017")
mydb = myclient["dbName"]
mycol = mydb["thePages"]

def pages(request):
  for x in mycol.find({},{ "_id": 0, "url": 1 }):
    return HttpResponse("<table border=1><tr><td> " + str(x) + "</td></tr></table>") 

urls.py:

 path('page/thePages', views.thePages, name = 'thePages'),

结果:

{'pageName': 'Google'}

预期结果:

Google
Bing
Facebook
StackOverflow

我是 Django 新手。请帮忙。我知道我需要一个循环来获取列中的所有值以及上面显示的格式。我需要一种方法来解决它。任何帮助都会非常有帮助。

【问题讨论】:

    标签: python html django mongodb pymongo


    【解决方案1】:
    def pages(request):
        table_start = "<table border=1><tr>"
        table_end = "</tr></table>"
        table_data = []
        for x in mycol.find({}, {"_id": 0, "url": 1}):
            if 'pageName' in x:
                table_data.append("<td> " + x['pageName'] + "</td>")
        return HttpResponse(table_start + ' '.join(table_data) + table_end)
    

    希望这会有所帮助!在返回 HTML 响应之前保存所有结果。

    【讨论】:

    • 我还添加了一个带有代码for x in mycol.aggregate([{"$unwind":"$tags"},{'$match': {'tags.tag.name':'A A',}},{'$project': {'url': 1, 'tags.tag.name': 1, '_id': 0}},]): 的数组,但是当我添加table_data.append("&lt;tr&gt;&lt;td&gt;" + x['url'] + "&lt;/td&gt;&lt;td&gt;" + json.dumps(tags.tag.name) + "&lt;/td&gt;&lt;/tr&gt;") 时,我收到了NameError name 'tags' is not defined 错误
    • json.dumps('tags.tag.name') 我想这就是原因。在单引号中给出键名。
    • 但是返回字符串tags.tag.name
    • 能否分享x变量输出?
    • x = {'tags': {'tag': {'name': 'A A'}}, 'url': 'https://www.google.com'}
    猜你喜欢
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    相关资源
    最近更新 更多