Django-如何将脚本移植到Django

时间:2018-10-08 23:09:17

标签: python django

在我问我的问题之前,我需要提供一些背景信息:

我编写了一个简单的python脚本,该脚本读取linux的syslog文件并搜索某些字符串。我有类似的其他类似脚本(用于执行文件系统内容的脚本,与其他服务器交互的脚本等等)。这些脚本大多数都将简单的写入内容写入stdout。

我想将这些脚本移植到Web服务器,这样我就可以将浏览器简单地安装到https://server/syslog上,并获得与在命令行界面上运行脚本所获得的输出相同的输出。

根据我的研究,Django似乎是一个不错的选择。我遵循了一些Django教程,并且能够开发一些基本的django网络应用程序。

我的问题是:由于django没有“控制器”,我应该在哪里放置脚本代码?我认为最好的选择是,但是根据djangos文档,它没有任何意义。

从django doc中提取:在我们对MVC的解释中,“视图”描述了呈现给用户的数据。不一定是数据的外观,而是要显示的数据。该视图描述的是您看到的数据,而不是如何查看。这是一个微妙的区别。

3 个答案:

答案 0 :(得分:1)

对MVC的描述不是那么重要。 django的典型用法是用于数据库支持的Web应用程序。这描述了一种设计模式或范例。完全有可能以其他方式使用django。

如果要构建一个django应用程序,该应用程序是现有脚本的Web界面,则甚至可能根本不需要django ORM。无论如何,您可以根据需要在视图中放置尽可能多的逻辑。您的用例可能并不完全适合MVC或MVT范例。 Django视图只是python函数(或类,但是基于Django类的视图与ORM紧密结合)。

答案 1 :(得分:0)

我建议:

  1. 基本上保留了脚本的原样,但将要重用的部分包装为 功能。您可以使用

    使其保持独立脚本的功能

    if __name__=='__main__':

    阻止调用函数。

  2. 将这些函数导入views.py-不管它们在哪里,只要您的服务器始终能够找到它们即可。我把我的放在了应用目录中。

  3. 在视图中调用该函数,然后将文本返回到从视图返回的HttpResponse对象。 (我认为这比创建模板和上下文并调用渲染更直接,但是我通常不这样做,所以可能会有一些问题吗?)

答案 2 :(得分:0)

这有点旧的代码-但是您将有足够的主意开始-检查https://github.com/alex2/django_logtail (Django_LogTail)