繁体   English   中英

从python控制台应用程序到django作为UI最佳实践

[英]From python console app to django as UI best practice

我有一个在控制台中运行的现有python应用程序。 该应用程序包含当前使用sqlite3作为其数据存储的功能。

我现在正尝试使用Django作为演示文稿,似乎我需要你们的一些帮助,以帮助我加快从控制台到支持Web的用户界面的过渡。

我了解网络是无状态的,并且该应用程序将主要消耗数个人。

我的大部分数据都是字典,我可以将其转换为JSON。 我正在寻求有关我需要了解的内容的建议,或者你们中是否有人遇到过需要迁移到以Web为中心的演示文稿的此类应用程序。

它主要具有基于查询的函数,几乎没有传递参数/参数,但是由于我的大多数数据库查询都是原始sql,因此我在python中访问数据库时会遇到问题。

预先谢谢你们。

(如果有任何现有项目可以用作模式,请提供帮助以与我分享)

==========

解析度

将此添加到manage.py中:

sys.path.insert(0, os.path.join(BASE_DIR, 'app', 'engine'))

现在,我可以调用“引擎”包类/脚本了。

这是一个非常开放的问题,但是我将解决将数据库移动到Django模型和自定义查询的问题。


资料层

在构建应用程序之前,您可以尝试并使用manage.py命令inspectdb将当前模式描述为Django模型。 它不会为您编写模型层,但可以帮助您入门。

正如@ joran-beasley所提到的,sqlite不适合作为多客户端应用程序的生产数据库。 Postgres在Django社区中得到广泛使用,但是几乎不支持原始SQL。

可以使用XML,YAML或JSON迁移某些数据,并使用Django的反序列化器或通过loaddata manage.py命令将其导入。 考虑将自定义管理器添加到模型中,这些管理器是一对一,外键或多对多字段的目标。 您可以添加一个自定义的get_by_natural_key方法,该方法可以简化对包含外键等的数据进行反序列化。


查询

Django的QuerySet API是包装SQL的绝佳包装器,但它有一些限制。 请花一些时间查看它的功能和缺点,以确定它是否可以帮助或阻碍您的需求。

如果你想继续做原料查询,Django的可以帮助你用太,因为它提供类似的辅助查询集方法rawextra 您可以完全使用其django.db.connection.cursor类来避免模型层。


我不能说太多对您的过渡有帮助的方法,但是您可能会发现Django的基于类的通用视图(如DetailViewListViewUpdateViewDeleteView可能有助于在界面上设置一些更基本的界面网页。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM