我是一个11年级的学生,我正在学习如何与我的队友一起构建一个网络应用程序。目前,我们正在制作一个显示学校时间表的网站(也是为了显示学生的分数),并帮助用户创建他们的待办事项列表,当然,这个网站为像我这样的学生服务。在web的后端,我们使用Python作为主要语言,使用Flask作为框架,使用MySQL操作我们的数据库。现在,一切都很好,我们正在努力为那些承载网络的人制作一个类似于管理界面的东西。具体来说,这是教师可以插入学生的成绩,并可能调整学校的时间表。问题是,我们正在学习如何使用Flask来编写该函数,并且我们发现这种技术只与Server兼容。但是,我们在MySQL中有更好的理解,因此我们可以创建多个任务,相比之下,我们不知道如何使用Server来创建这些功能。现在我有两个主要问题:
除了摆脱MySQL和使用Server之外,我们不知道其他解决这个问题的方法。然而,这不是我们喜欢的方式,我们希望这两个问题得到回答。如果我们的知识有什么问题,请直接评论,让我们知道,我们非常欢迎任何其他的解决方案。谢谢你的回答!!
发布于 2020-10-30 06:45:06
直接来自烧瓶管理文档的https://flask-admin.readthedocs.io/en/latest/advanced/#using-different-database-backends如下:
使用SQLAlchemy…以外的不同数据库后端有五个不同的后端可供您选择,这取决于您希望在应用程序中使用哪个数据库。但是,如果您需要实现自己的数据库后端,请查看添加模型后端。 如果您不知道从哪里开始,但是您熟悉关系数据库,那么您可能应该考虑使用SQLAlchemy。是一个功能齐全的工具包,支持 SQLite、PostgreSQL、MySQL、Oracle和MySQL等。一旦你有了大量的数据,以及你的数据模型之间的大量关系,它就会进入它自己的领域。如果您想跟踪像纬度/经度点这样的空间数据,也应该查看GeoAlchemy。
关于最初的问题,可以在web应用程序的后端使用两个不同的框架。这样做的一种方法是设置一个反向代理服务器(请参阅https://www.nginx.com/resources/glossary/reverse-proxy-server/#:~:text=A%20reverse%20proxy%20server%20is,traffic%20between%20clients%20and%20servers.),但我建议在这样做之前给出SQLAlchemy。
发布于 2020-10-30 06:49:51
你为什么认为烧瓶管理和SqlServer有关?烧瓶(和烧瓶-管理)可以处理到不同数据库的不同连接:
我猜您目前正在使用SqlAlchemy。正如解释过的这里,您可以使用不同的后端:
URL的字符串形式是
dialect[+driver]://user:password@host/dbname[?key=value..]
,其中dialect
是数据库名,如mysql、oracle、postgresql等,驱动程序是DBAPI的名称,如psycopg2、pyodbc、cx_oracle等。或者,dialect
可以是URL的实例。 (发动机)
更多关于引擎这里的信息
烧瓶- admin是数据库表上的管理视图-您不能在一个“不同”的db上运行它,而不是它应该修改的表。它需要访问您希望它修改的数据库表,因此您不能在MS上运行"admin“,而在另一个数据库(-connection)上运行”您的数据后端“。
还有一些其他的事情要考虑:
MS-(T-)Sql和MySql是基础设施的选择,从语言上讲,它们是密切相关的,因此将MySql知识应用于MySql语法应该是可能的。选择SqlServer可能会迫使你授权它--并且afaik附带费用(eiter在前提下或者作为一个免费订阅可能对学校是免费的,也可能不是免费的(不知道--但你应该检查一下)。
这听起来像是一项雄心勃勃的学校计划--取决于你住在哪里,隐私数据保护法发挥了作用,尤其是考虑到你把名字和分数联系起来,这就需要你实施更多的计划来遵守。
发布于 2020-10-30 07:21:16
对于第一个问题,我检查了flask-admin
文档,发现框架已经包含了在ORM库中内置的serval,即SQLAlchemy
、MongoEngine
、pymongo
和Peewee
。这意味着您可以直接从flask-admin
包导入ORM库,并使用它访问数据库。对于您的情况,您应该在使用SQL时查找SQLAlchemy
。Server和MySQL都由SQLAlchemy
支持。
官方文档中的Adding部分也提到了它:https://flask-admin.readthedocs.io/en/latest/introduction/#getting-started
对于第二个问题,技术上不可能在一个后端应用程序中应用两个不同的框架。
https://stackoverflow.com/questions/64603576
复制相似问题