【问题标题】:Displaying MongoDB Documents with HTML使用 HTML 显示 MongoDB 文档
【发布时间】:2013-07-25 06:35:34
【问题描述】:

我正在尝试创建一个 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)

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

【问题讨论】:

    标签: javascript python html mongodb


    【解决方案1】:

    查看瓶子模板引擎的文档,您似乎可以使用“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

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2021-08-20
      • 1970-01-01
      • 2019-07-10
      • 2021-01-04
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2019-08-29
      • 2017-01-10
      相关资源
      最近更新 更多