【问题标题】:DJANGO: executing other .py program from views.pyDJANGO:从 views.py 执行其他 .py 程序
【发布时间】:2015-05-20 17:27:24
【问题描述】:

我有 xmlparser.py。此 .py 解析本地 XML 文件,然后从模型 SQLITE3 数据库创建/更新对象。

此 xmlparser.py 文件与 views.py 位于同一文件夹中。好吧,我想“执行”xmlparser.py(更新我的数据库),然后进入为 HttpResponse 更新的 views.py 数据库对象。

我该怎么做?

【问题讨论】:

    标签: python django


    【解决方案1】:

    我猜你在xmlparser.py 中所做的一切都是通过类和函数完成的。您应该能够导入它并在当前 python 文件中使用这些方法。

    【讨论】:

    • 没有错误...代码.. A 只是一个例子。从模型导入 xml.sax 导入 Actividad ... def 字符(自我,内容): ... A = Actividad.objects.create(titulo = "hola2", tipo = "tipo", precio=2.3, fecha="2015 -03-04", hora="19:23") 如果 name == 'main': parser = xml.sax.make_parser() parser.setFeature(xml .sax.handler.feature_namespaces, 0) Handler = MyHandler() parser.setContentHandler(Handler) parser.parse('your.xml')
    【解决方案2】:

    在views.py中:

    import xmlparser
    

    然后将其用作其他 python 模块。例如

    xmlparser.your_method
    

    【讨论】:

    • 我没有办法,我只是写了 xmlparser 在 xmlparser 里面我有这样的东西 A = Actividad.objects.create(titulo = "hola2", tipo = "tipo", precio=2.3, fecha ="2015-03-04") 并且没有任何意义。如果我直接在views.py中编写它,它可以工作,但它不在xmlparser中。在views.py 我有导入xmlparser 在xmlparser 我有从模型导入Actividad
    • 要在视图函数中执行 xmlparser,您可以在某个函数中移动 xmlparser.py 语句,然后再调用它。使用子进程是另一种选择。检查@Josep Valis's answer
    • Django 回复我这个异常:
    • Django 回答我这个:异常值:'module' 对象没有属性'process'
    【解决方案3】:

    您可以在操作系统上执行任何操作:

    from subprocess import call
    call(["python","xmlparser.py"])
    

    这里也看第二个答案:

    using python subprocess call to invoke python script

    【讨论】:

    • 我认为这是一个 Django 问题我没有方法,我只是写了 xmlparser 在 xmlparser 里面我有这样的东西 A = Actividad.objects.create(titulo = "hola2", tipo = "tipo ", precio=2.3, fecha="2015-03-04") 并且没有任何意义。如果我直接在views.py中编写它,它可以工作,但它不在xmlparser中。在views.py 我有导入xmlparser 在xmlparser 我有从模型导入Actividad
    猜你喜欢
    • 2014-08-17
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    相关资源
    最近更新 更多