如何在Azure App Service上运行django manage.py命令

时间:2016-04-07 06:46:37

标签: python django azure

我想在我的应用程序中对azure app服务执行Django migrate命令,

$ python manage.py migrate

但我不知道该怎么做。

3 个答案:

答案 0 :(得分:4)

作为常见场景,我们利用虚拟环境处理python脚本,如official guide所示。如果是这样,如果我们使用Azure Python运行时来运行命令,则可能会引发异常,因为缺少依赖性。

通常,我们可以利用您的Web Apps或Visual Studio Online扩展的Kudu控制台站点来修改脚本或执行命令。

Kudu控制台网站:

  1. 您可以登录网址为https://<your_web_app_name>.scm.azurewebsites.net/DebugConsole
  2. 的Kudu控制台网站
  3. cd d:\home\site\wwwroot这是您的应用程序的根目录。
  4. 运行命令env\Scripts\python.exe manage.py migrate(假设您的虚拟环境在根目录中为env
  5. Visual Studio Online扩展:

    1. 安装VSO extensio,您可以参考How to install composer on app service?
    2. 的答案
    3. 登录VSO编辑器站点,找到open console按钮以打开命令的cmdlet,您可以在左侧导航栏中找到此按钮。enter image description here
    4. 如有任何疑问,请随时告诉我。

答案 1 :(得分:2)

您可以在Azure Web应用程序中运行Python代码。您必须确保为应用程序启用了Python:

enter image description here

然后 - 您可以将您的呼叫包裹在批处理脚本中的python manage.py migrate,并在您的webapp的启动任务中调用它。

此处描述了启动任务:https://azure.microsoft.com/en-us/documentation/articles/cloud-services-startup-tasks/以及它归结为您必须将批处理脚本与应用程序捆绑在一起,并修改ServiceDefinition.csdef并在XML中添加启动任务这样:

<Startup>
    <Task commandLine="Startup.cmd" executionContext="limited" taskType="simple" >
        <Environment>
            <Variable name="MyVersionNumber" value="1.0.0.0" />
        </Environment>
    </Task>
</Startup>

答案 2 :(得分:0)

除了按照Gary Liu的建议从Kudu控制台运行命令之外,我还发现为长时间运行的命令创建了一个 WebJob 上级命令(似乎超时/在Azure上无法很好地运行)

创建一个WebJob并使用类型Triggered并触发Manual

enter image description here

使用内部命令上传* .cmd文件

d:\home\python364x64\python.exe d:\home\site\wwwroot\manage.py migrate

将第一个路径替换为您的python所在的任何位置

然后,只要您想运行Django Command,就单击“运行”

enter image description here