【问题标题】:What it's the canonical way of interfacing DB's id with HTML id?将 DB 的 id 与 HTML id 连接的规范方式是什么?
【发布时间】:2017-06-23 19:58:31
【问题描述】:

所以我正在编写一个简单的网络应用程序。它有 SQLite 作为 RDBMS,Python 的瓶子框架作为服务器,其余的是 HTML、CSS 和 JavaScript。

现在,我们都知道 HTML 标签不能有以数字开头的 id。在数据库中使用文本/字符串作为主键将是地狱。

现在我正在将 DB id 转换为字符串并在它之前添加一个 _ 以便它在 HTML 中正确呈现。当需要更新数据库时,做相反的事情。但是我的代码看起来并不漂亮。

那么,让这两个谈话的标准接受方式是什么?我应该在哪里实现翻译器,用 Python 还是用 JavaScript?这个问题在传统计算机科学中有什么背景?


编辑:对于那些要求更具体的人

确保模型和视图都能正常工作的最佳方法是什么?无需到处乱写tofrom 函数(程序员可能会忘记调用它)。

另外,如果您在大学接受过计算机科学方面的培训,或者了解 Java 或 Haskell 等超级学术语言,您会采用什么方法。

【问题讨论】:

  • 你的问题对于这个平台来说太宽泛了。您需要针对特定​​问题提出特定问题。
  • @Rob - 我同意,这个问题很宽泛,但这就是 canonicaldesign-patterns 是给儿子的。如果您在 Google 上查找 canonical stackoverflow.com,您会意识到自己的错误,即称我的问题对于该平台而言“过于宽泛”
  • 你不能同意它太宽泛,然后又不同意它太宽泛。此外,您的编辑正在征求意见,这也与这里无关。

标签: html python-3.x design-patterns bottle


【解决方案1】:

虽然我检查了official reference,但对我来说,id 不能以数字开头是个新闻,你是对的。

在实践中,我多年来在许多浏览器中都使用整数和 uuid 作为元素 ID,并且在浏览器渲染它或通过 JavaScript 访问它时从来没有遇到过问题。

所以我的回答就是忽略它。

编辑

响应反对票 - 试试这个

<body>
    <p id="1" onclick="alertme()">This is some text</p>
    <script>
        function alertme(){alert(document.getElementById('1').innerText);}
    </script>
</body>

作为在各种浏览器中打开并使用开发人员工具的纯 html 文件。

没有一个浏览器抱怨它。 (Firefox 抱怨没有 html 标签或编码,但你去)。一切正常。这是对现实世界的简单实用建议。

【讨论】:

  • 绝对!您应该始终忽略浏览器供应商自己编写的 Web 标准。毕竟,他们知道什么?
  • @Rob - 真实世界的建议!
  • 规范要求浏览器在标记和代码错误的情况下尽其所能。遵循规范比让浏览器猜测你的意图要聪明得多。你的回答太糟糕了。
  • @aim100k 关于 css 的好点 - 但是在实践中,您永远不会根据元素的数据库 id 对元素应用样式
  • @ste-fu 考虑在悬停或用户点击时显示详细信息(更改视图)的情况。
猜你喜欢
  • 2018-03-17
  • 2011-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-05
  • 2013-03-27
  • 2013-09-04
相关资源
最近更新 更多