在Hy中运行Django

时间:2018-05-24 03:41:59

标签: django hy

我正在使用Hy编写一个Django网络服务器,这是一种编译成Python的Lisp方言。除了Django自动查找的特定.py文件之外,我已经能够在Hy中编写所有内容。

  • myproject/settings.py
  • myproject/urls.py
  • app/management/commands/my_management_command.py

我想在Hy中编写上述文件,而不是Python。

我可以通过使用这些.py文件导入.hy文件来解决此限制,但我更喜欢更优雅的解决方案。有没有办法让Django查找.hy个文件而不是这些.py个文件?

编辑:将“字节码”更正为“ast”。

1 个答案:

答案 0 :(得分:2)

我通常建议使用.py文件导入.hy这类文件。但是Django是开源的,因此如果有必要,肯定可以修补本地安装。

Django使用settings.py环境变量找到DJANGO_SETTINGS_MODULE,然后通过importlib导入它。理论上,这将适用于Hy模块,只要先导入Hy。所以诀窍就是在发生之前将import hy语句放在某个地方。有几种方法可以启动Django,例如django-adminmanage.pypython -m djangoimport hy语句必须在其中任何一个尝试导入Hy模块之前发生。如果你只是把它放在manage.py中,我认为其他的仍然无效。

您可以创建一个命令行Hy脚本,导入Hy然后导入manage.py或其他任何内容,并使用其argv运行它。