是否可以在您的个人github页面上的某处存储一些数据?
例如触发计数器的按钮。当您单击按钮时,计数器增加1.当其他用户访问该页面并单击该按钮时,计数器再次增加1。
因此,它将是所有访问者在页面上显示的所有点击的总和。
答案 0 :(得分:42)
Github页面仅允许静态内容,因此您必须使用类似firebase的内容才能获取数据库。
答案 1 :(得分:13)
关于Firebase的已接受答案是一个很好的快速回复,但我想为正在调查此主题的任何人撰写更长更全面的回复,因为Firebase是实现此类功能的几种方法之一。
作为背景,像mysql,postgres,redis,mongodb等数据库/数据存储区是以下一个访问者查看或访问访问者数据的方式存储访问者数据的最常用方法。 Django,Wordpress和Drupal等内容管理系统可以读写数据库。这些服务往往是服务器端技术,也就是说服务器管理员设置它们,并且网站用户看不到的代码块与数据库通信。该服务器端代码库还构建用户将看到的呈现的html。所以一般来说,Github Pages不会与这些技术一起使用,因为它们只支持静态html,css和javascript - 也就是说,它们只允许客户端代码。
有关此主题的更多信息,请参阅How to connect html pages to mysql database?
如果要设置只读数据存储区,Github页面上有很多选项。您可以在您的仓库中放置一个json文件,查询驱动器文档,将sqlite.db文件上传到您的仓库并查询它等。在这个想象的示例中,您必须对网站用户看到您的任何数据一切正常数据存储区,因为设置不会提供一些方法来使某些数据对用户不可见。
然而,只要您考虑写入数据库,安全就是一个问题。如果您设置某种非现场数据库并将数据库访问凭据放入客户端代码中,任何用户都可以看到这些凭据并破坏您的数据库(注入数据,接管数据,删除它等)仅此一点,您需要一个将数据从前端传递到后端的设置,反之亦然,而不会让网站流量看到引擎盖下。据我了解,这是Github Pages无法为您提供的一系列功能。
有关客户端数据库安全性的更多信息,请参阅此主题:https://softwareengineering.stackexchange.com/questions/180012/is-there-any-reason-not-to-go-directly-from-client-side-javascript-to-a-database
一种可能的解决方法是使用静态端链接到第三方服务。例如,您可以在HTML页面中嵌入Google表单。该表单可以链接到Google表格。该表可以发布到Web并设置为自动更新。您的Github页面站点可以引用该页面的公共版本,并在提交更改时更新(延迟)。这种类型的设置是笨重的(我认为如果它们变得太大,Google表格会变慢)并且应该谨慎使用,因为这种设计糟糕的形式可能是垃圾邮件。更不用说查看客户端代码的任何人都可以查看Google表格的公开版本,如果您收集它,将包括提交时间和用户数据。但是,如果仔细使用,它可能适用于上述用例。
答案 2 :(得分:6)
根据您的需要,您可以尝试 GithubDB
来自他们的文档:
曾经想用Github作为你的私人数据库,现在你可以。
为什么我要将Github用作我的数据库?
好问题。开发人员可以选择不同的数据库, 然而,GithubDB充分利用了您所喜爱的所有功能 Github上。
日志记录(使用Github,您可以快速查看您的提交并查看 为您的请求编写和更新)。
可视化(Github提供了可视化传入的惊人工具 读/写次数。
持久性(使用Github,您可以回滚到数据的早期阶段 并看看它是如何演变的)。
安全性(使用Github,您的数据库继承了相同的标准 Github上)。
可用性(Github已经知道会失败,但说实话,确实如此 除非你是Facebook,否则就足够了。
答案 3 :(得分:3)
使用Github的HTTP REST API:https://developer.github.com/v3/ 可以通过浏览器js将json文件或sqllite文件提交/更新到github页面repo中。