热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python–在桌面上部署Django应用程序有哪些成功的方法?

我有一个Django应用程序,我想部署到桌面.我已经阅读了一些内容,并看到一种方法是使用freeze.我在过去对Python应用程序使用了不同的成功,但我不相信它是Django应用

我有一个Django应用程序,我想部署到桌面.我已经阅读了一些内容,并看到一种方法是使用freeze.我在过去对Python应用程序使用了不同的成功,但我不相信它是Django应用程序的最佳方法.

我的问题是:您用于部署Django应用程序的成功方法是什么?有事实上的标准方法吗?你有没有死路一条?我需要一个跨平台的解决方案.

解决方法:

几年前我为一个运行本地守护进程的Django应用程序做了这个.它由Twisted发布,由py2app for Mac和py2exe for Windows包装.有一个浏览器和一个Air前端击中它.它在大多数情况下工作得很好,但我没有在野外部署它,因为较大的项目被推迟了.已经有一段时间了,我对细节有点生疏,但这里有一些提示:

> IIRC,最有问题的是Python加载C扩展.我有一个用C“asm”命令编写的英特尔汇编程序模块,我需要加载它来获取低级系统数据.这需要一段时间才能在两个平台上运行.如果可以,请尝试避免C扩展.
>你肯定需要一个安装程序.该应用最有可能最终在后台运行,因此您需要将其标记为Windows服务,Unix守护程序或Mac启动应用程序.
>在安装程序中,您需要提供一种查找空闲本地TCP端口的方法.您可能必须编写安装程序运行的小存根例程,或使用安装程序的内置脚本工具来查找尚未执行的端口并将其保存到配置文件中.然后,在settings.py中加载配置文件,以及要部署的任何前端.那是共享端口.或者你可以选择一个随机数,并希望桌面上的其他服务没有你的脚趾:-)
>如果您的前端和后端是单独的应用程序,那么您需要为它们设计一个API来相互通信.确保提供一个标志,以原始和人类可读的形式返回数据.它确实有助于调试.
>如果您希望Django能够向用户发送通知,您将需要与Growl集成或获取Python for Windows扩展,以便您可以调出烤箱弹出通知.
>您可能希望坚持使用SQLite for database,在这种情况下,您需要确保使用信号量来处理争夺数据库(或任何其他共享资源)的多个请求.如果您的应用程序是通过浏览器访问的,则用户可以打开多个窗口并同时点击该应用程序.如果使用自定义前端(本机,Air等等),那么您可以控制在给定时间运行的实例数量,这样就不会出现问题.
>您还需要某种对本地系统日志记录工具的访问权限,因为应用程序将在后台运行,并确保捕获所有异常并将其路由到syslog中.一个很大的麻烦是调试Windows服务启动问题.没有系统记录就不可能.
>如果要保持跨平台,请注意硬编码路径.您可能必须依赖安装程序来编写配置文件条目,其中包含您在启动时必须加载的实际安装路径.
>测试实际部署,尤其是在各种防火墙上.一些桌面防火墙非常积极地阻止访问接受传入请求的网络服务.

这就是我所能想到的.希望能帮助到你.


推荐阅读
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 我们有(据我所知)星型模式SQL数据库中的数据文件。该数据库有5个不同的文件,扩展名为 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • UNIX高级环境编程 第11、12章 线程及其属性
    第11章线程11.2线程概念线程资源:线程ID,一组寄存器,栈,调度优先级和策略,信号屏蔽字,e ... [详细]
  • 1.imac睡眠快捷键是啥苹果电脑强制退出程序快捷键是Command+Option+Shift+Esc。苹果电脑 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了markdown[软件代理设置]相关的知识,希望对你有一定的参考价值。 ... [详细]
  • maven阿里云镜像一路繁花似锦绣前程
    重点:找到maven引用的settings.xml配置文件,将以下代码复制至<mirrors><mirrors&a ... [详细]
  • 这篇文章给大家介绍怎么从源码启动和编译IoTSharp ,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。IoTSharp项目是 ... [详细]
  • Android NDK开发的一点尝试
    写在前面笔者是一个“原始”的C++开发者,对Java编程虽说不上抵触但也没有C++那么顺手。而且,作为一个游戏引擎,不管是在什么地方,效率总是第一位的,尤其是在移动平台这样资源吃紧 ... [详细]
author-avatar
五味子120的马甲
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有