javascript - 使用 HTML 显示 MongoDB 文档

标签 javascript python html mongodb

我正在尝试创建一个 HTML 表来显示 mongodb 集合的内容。该集合包含有关来自小型企业的不同客户订单的数据。某些数据将始终存在于给定文档中,例如客户姓名和电话号码。但是,每个文档中的某些数据需要有所不同,例如订购的商品,因为一位客户可能订购 1 件商品,而另一位可能订购 3 件商品。因此,如果我有一个 mongodb 集合,其中包含每个文档中包含任意数字字段的文档,我如何将它们动态添加到 HTML 表中以显示文档的内容?作为我正在寻找的显示类型的示例,这是我知道将保持不变的字段的硬编码 HTML。

 <!DOCTYPE html>
 <html>
  <head>
    <head>
    <title>Invoice Report</title>
    <style type="text/css">
     body {font-family:sans-serif;color:#4f494f;}
     form input {border-radius: 7.5px;}
     h5 {display: inline;}
     .label {text-align: right}
     .ordersBook {float:left; padding-top: 10px;}
     .name {width:100%;float:left; padding:3px;}
     .wrapper { padding-left: 25px; padding-top: 20px}
    </style>
    <script type="text/javascript">
    var itemRe = /item*/;
    }
    </script>
   </head>
  </head>
  <body>
     <div class="invoice">

      <h4>Order Form:</h4>
<table border="1">
<tr>
  <th>Name:</th>
  <td>{{rows['name']}}</td>
</tr>
<tr>
  <th>Created:</th>
  <td>{{rows['created']}}</td>
</tr>
<tr>
  <th>Phone:</th>
  <td>{{rows['phone']}}</td>
</tr>
<tr>
  <th>Email:</th>
  <td>{{rows['email']}}</td>
</tr>
<tr>
  <th>Item:</th>
  <td>{{rows['item']}}</td>
  </tr>
</div>
  <tr>
    <th>Quantity:</th>
    <td>{{rows['qty']}}</td>
  </tr>
  <tr>
    <th>Color:</th>
    <td>{{rows['color']}}</td>
  </tr>
  <tr>
    <th>Quote:</th>
    <td>{{rows['quote']}}</td>
  </tr>

</table>
     </div>


  </body>
 </html>

动态创建整个表可能会更好,但我不确定这样做的正确位置是什么

  • 在 HTML 文件中的 javascript 函数中?
  • 或者可能在维护 mongodb 数据库信息的 pymongo 文件中?

处理将 mongodb 文档发送到 HTML 表单的 python 代码使用了 python Bottle 模板。

@bottle.route('/view/<_id>', method = 'GET')
def show_invoice(_id):
    client = pymongo.MongoClient("mongodb://localhost")
    db = client.orders
    collection = db.myorders
    from bson.objectid import ObjectId
    result = collection.find_one({'_id': ObjectId(_id)})
    return bottle.template('invoice', rows = result)

我非常感谢有人能够提供的任何帮助! =)

最佳答案

查看瓶子模板引擎的文档,看起来您可以使用“ifs”和“fors”来完成此操作。

例如,如果您的订单存储在 rows['orders'] 中,而您不知道其中有多少,您可以在模板中放置:

%for item in rows['orders']:
  <td>{{item}}</td>
%end

或者说,如果您的客户订购的商品经常缺货,并且您已经传入另一个变量“缺货”,那么您需要显示一条特殊警告,该变量指定了这一点:

%if backorder:
  <span>This item is frequently on backorder</span>
%end

我还没有测试过其中任何一个,但我已经使用 Django 和 Flask 模板引擎完成了类似的事情。我从这里提取了这些样本:

http://bottlepy.org/docs/dev/tutorial.html#templates

和此处的“用于格式化输出的瓶子模板”部分:

http://bottlepy.org/docs/dev/tutorial_app.html#using-bottle-for-a-web-based-todo-list

希望这对您有所帮助!

关于javascript - 使用 HTML 显示 MongoDB 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17856809/

相关文章:

javascript - 排除 URL 前面的 URL 方案

python - 更快的图像标准化(numpy 数组)

python - python 和 OpenSSL 出现 "no shared cipher"错误

javascript - 使用 ng-style 进行背景渐变时出现 AngularJS 语法错误

javascript - 将 JSON 对象与 HTML 混合是否合适?

javascript - 带有 angularJS 的水平日计划器/调度器(拖放)

javascript - 如何突出显示 DOM Range 对象的文本?

javascript - jquery - 根据文档宽度折叠面板

python - 表达式中间的条件

javascript - jQuery 最接近的方法不起作用