天道酬勤,学无止境

脚本单独调用django模块

需求场景:

在写django的时候,有时候会遇到我们需要使用django中的模型(Model),但是脚本代码是单独执行的,并不是和django服务一起执行的,这时候需要在文件的开始部分做如下设置:

import os, sys
CMDB_PATH = os.path.dirname(os.path.dirname(__file__))
sys.path.insert(0, CMDB_PATH)
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'import django
django.setup()

 

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 曾Python培训讲师-Python开发无包装简历
    2年Python开发无包装简历。 曾任Python(机器学习)讲师,模拟面试上百个学生,帮助数十个学生顺利找到Python相关工作,工资普遍在10-15k左右。 说实话,这份简历还是值得借鉴,想要包装的比这好看数倍也可以加我微信:chenyoudea 获得包装简历技术和面试技巧。目录一、个人介绍二、教育经历三、技能介绍四、工作经历项目一:智能语音交互会议室系统(独立编写)项目二:仿路飞学城项目三:智能玩具项目一:MatterRoom项目二:Ravn(Konqis)老男孩培训 2018.05 - 2018.10 学生上海思满科技有限公司 2018.05 - 2019.02 Python开发 薪资:12k-15k上海十维科技教育有限公司 2019.02 - 2019.10 Python(人工智能)讲师 薪资:20k-30k干眼症期间 2019.11 - 2020.09考研期间 2020.09 - 至今五、自我评价陈有德-Python开发-2年一、个人介绍陈有德 | 23 | 本科 | 中共党员电话:15306815606邮箱:nickchen121@163.com工作经验:2年求职意向:Python开发技术博客(博客园官方推荐,积分总排名500多):https://www.cnblogs.com/nickchen121/知乎专栏(获北京一天一天教育科技有限公司Python讲师认证)
  • Python Web框架,WSGI和CGI如何结合在一起(How Python web frameworks, WSGI and CGI fit together)
    问题 我有一个Bluehost帐户,可以在其中运行Python脚本作为CGI。 我猜这是最简单的CGI,因为要运行,我必须在.htaccess定义以下内容: Options +ExecCGI AddType text/html py AddHandler cgi-script .py 现在,每当我使用Python查找Web编程时,我都会听到很多关于WSGI以及大多数框架如何使用它的知识。 但是我只是不明白它们之间的关系如何,特别是在给定我的Web服务器(Apache在主机计算机上运行)的情况下,尤其是当我不能真正玩的东西(定义.htaccess命令除外)时。 WSGI,CGI和框架如何连接? 如果我想在基本的CGI配置上运行Web框架(例如web.py或CherryPy),我需要知道什么,如何安装? 如何安装WSGI支持? 回答1 WSGI,CGI和框架如何连接在一起? Apache侦听端口80。它获取HTTP请求。 它解析该请求以找到一种响应方式。 Apache有很多可供选择的响应方式。 一种响应方式是使用CGI运行脚本。 响应的另一种方法是简单地提供文件。 对于CGI,Apache准备一个环境并通过CGI协议调用脚本。 这是标准的Unix Fork / Exec情况-CGI子进程继承了包括socket和stdout在内的OS环境。 CGI子进程编写一个响应
  • 通过Django将Python数据传递给JavaScript(Passing Python Data to JavaScript via Django)
    问题 我正在使用Django和Apache来提供网页。 我的JavaScript代码当前包含一个数据对象,该数据对象的值将基于用户从选项菜单中的选择而显示在各种HTML小部件中。 我想从Python字典中导出这些数据。 我想我知道如何将JavaScript代码嵌入HTML中,但是如何(即时)将数据对象嵌入该脚本中,以便脚本的功能可以使用它呢? 换句话说,我想从Python字典创建JavaScript对象或数组,然后将该对象插入JavaScript代码,然后将该JavaScript代码插入HTML。 我认为这种结构(例如,嵌入JavaScript代码中变量中的数据)不是最理想的,但是作为一个新手,我不知道替代方案。 我见过Django序列化功能的文章,但是这些文章对我没有帮助,直到我首先将数据放入我的JavaScript代码中为止。 我(尚未)使用jQuery之类的JavaScript库。 回答1 nb见底部的2018更新 我建议不要在Django模板中放置太多JavaScript-往往很难编写和调试,尤其是在项目扩展时。 相反,请尝试将所有JavaScript写入一个单独的脚本文件中,以供模板加载,并在模板中仅包含JSON数据对象。 这使您可以执行诸如通过JSLint之类运行整个JavaScript应用程序,对其进行缩小等操作,并且可以使用静态HTML文件对其进行测试
  • Python模块字典
    一【文本时间处理】 Chardet # 字符编码探测器 # 可以自动检测文本、网页、xml的编码 | colorama # 主要用来给文本添加各种颜色 # 并且非常简单易用 | Prettytable # 主要用于在终端或浏览器端构建格式化的输出 | difflib # Python标准库 # 计算文本差异 Levenshtein # 快速计算字符串相似度 | fuzzywuzzy,字符串模糊匹配 | esmre,正则表达式的加速器 | shortuuid,一组简洁URL/UUID函数库 | ftfy # Unicode文本工具 | unidecode # ascii和Unicode文本转换函数。 | xpinyin # 将汉字转换为拼音的函数库 | pangu.py # 调整对中日韩文字当中的字母、数字间距。 | pyfiglet # Python写的figlet程序 # 使用字符组成ASCII艺术图片 | uniout # 提取字符串中可读写的字符 | awesome slugify # 一个Python slugify库 # 用于处理Unicode。 | python-slugify # 转换Unicode为ASCII内码的slugify函数库。 | unicode-slugify # 生成unicode内码 # Django的依赖包。 | ply #
  • 相对导入中超出顶级包错误(beyond top level package error in relative import)
    问题 似乎这里已经有很多关于python 3中相对导入的问题,但是经过很多问题后,我仍然找不到我问题的答案。 所以这是问题。 我有一个如下所示的包裹 package/ __init__.py A/ __init__.py foo.py test_A/ __init__.py test.py 我在test.py中只有一行: from ..A import foo 现在,我在package的文件夹中,然后运行 python -m test_A.test 我收到消息 "ValueError: attempted relative import beyond top-level package" 但是如果我在package的父文件夹中,则运行: cd .. python -m package.test_A.test 一切都好。 现在我的问题是:当我在package的文件夹中,并根据我的理解,将test_A子包中的模块作为test_A.test运行时, ..A仅上升到一个级别,该级别仍在package文件夹,为什么它给出了beyond top-level package消息。 导致此错误消息的确切原因是什么? 回答1 编辑:在其他问题中,这个问题有更好/更连贯的答案: 兄弟包进口相对进口量为十亿次 为什么不起作用? 这是因为python没有记录软件包从何处加载。 因此,当您执行python
  • 整理Python中的输出以SMTPHandler记录MemoryHandler(Collate output in Python logging MemoryHandler with SMTPHandler)
    问题 我已将日志记录模块MemoryHandler设置为对SMTPHandler目标的调试和错误消息进行排队。 我想要的是当过程错误包含到该点为止的所有调试语句(每行一个)时发送一封电子邮件。 我得到的是每条调试消息的单独电子邮件。 看来它应该是琐碎的,并且是日志记录程序包的一部分,但是我找不到任何有关它的内容,没有示例,在Google上什么也没有。 log = logging.getLogger() log.setLevel(logging.DEBUG) debug_format = logging.Formatter("%(levelname)s at %(asctime)s in %(filename)s (line %(lineno)d):: %(message)s") # write errors to email error_mail_subject = "ERROR: Script error in %s on %s" % (sys.argv[0], os.uname()[1]) error_mail_handler = logging.handlers.SMTPHandler(SMTP_HOST, 'errors@'+os.uname()[1], [LOG_EMAIL], error_mail_subject) error_mail_handler.setLevel
  • PyCharm错误:尝试导入自己的模块时(“ Python模块”)为“无模块”(PyCharm error: 'No Module' when trying to import own module (python script))
    问题 我写了一个模块(文件my_mod.py驻留在文件夹中的文件my_module )。 当前,我正在文件cool_script.py中的cur_proj文件中cur_proj 。 我已经使用File-open在PyCharm中打开了该文件夹(并且我认为这是一个PyCharm项目)。 在ProjectView(CMD-7)中,我可以看到我的项目cur_proj (红色),而在“外部库”下则可以看到my_module 。 在cool_script.py中,我可以写 from my_module import my_mod as mm PyCharm甚至建议使用my_mod。 到现在为止还挺好。 但是,当我尝试运行cool_script.py时,PyCharm告诉我“没有名为my_module的模块” 这在我看来很奇怪,因为 A)在终端(OS 10.10.2)中,在python中,我可以导入模块没有问题-.bashrc中的PYTHONPATH中有相应的条目 B)在PyCharm中-设置-Project cur_proj-Project Interpreter-Python解释器旁边的CogWheel-更多-显示所选解释器图标的路径,PYTHONPATH的路径确实出现(我认为应该如此) 因此,为什么在尝试运行cool_script.py时出现错误? -我想念什么? 笔记:
  • 将crontab与django一起使用(Using crontab with django [duplicate])
    问题 这个问题已经在这里有了答案: 设置预定的工作? (24个答案) 7年前关闭。 我需要创建一个每天从crontab发送新闻通讯的功能。 我在互联网上找到了两种方法来做到这一点: 首先-将文件放置在django项目文件夹中: #! /usr/bin/env python import sys import os from django.core.management import setup_environ import settings setup_environ(settings) from django.core.mail import send_mail from project.newsletter.models import Newsletter, Address def main(argv=None): if argv is None: argv = sys.argv newsletters = Newsletter.objects.filter(sent=False) message = 'Your newsletter.' adr = Address.objects.all() for a in adr: for n in newsletters: send_mail('System report',message, a ,['user@example.com'
  • 协作时如何管理配置文件?(How to manage configuration files when collaborating?)
    问题 我正在页面顶部写一个简短的脚本,其中包含一些简单的变量。 我想和一个朋友一起研究它们,但是我们不确定在为我们一个人每次拉动之后如何管理需要更改的变量,从而在git状态中添加了不必要的垃圾。 我考虑过只为我们每个人创建不同的命名分支,然后主服务器将只设置示例用户名,但是合并所有额外的工作似乎很愚蠢。 我们可以将变量作为选项传递给脚本,但这不是必需的,也不需要将其分离到另一个单独的配置文件中。 拥有.gitignore之类的东西会很棒,但是只忽略文件中的几行。 如何进行优雅的管理? 通常如何解决此问题? 回答1 恐怕您不能轻易地忽略对文件特定行的更改,因此您可能会被困在拥有单独的配置文件中。 在下面,我列出了两种典型的处理方式,一种稍微有些异国情调的方式: 在git中有一个样本配置文件 在这里,您将在git中保留一个文件config.sample作为示例,但是应用程序实际上将使用.gitignore中的文件config的值。 除非存在config否则应用程序将产生错误。 将新的配置变量添加到个人config文件时,您必须记住要更改示例文件中的值。 在这种情况下,最好还是让您的应用程序检查所有必需的配置变量是否已实际设置,以防有人在更改样本后忘记更新其config文件。 在git中有一个默认值文件 您将文件config.defaults在git中,该文件具有尽可能合理的默认配置值。
  • 无法导入明确安装的模块(Unable to import a module that is definitely installed)
    问题 安装机械化后,我似乎无法导入它。 我试过从pip,easy_install进行python setup.py install ,并尝试通过python setup.py install从该存储库进行python setup.py install :https://github.com/abielr/mechanize。 所有这些都无济于事,因为每次我进入Python交互式平台时,我都会得到: Python 2.7.3 (default, Aug 1 2012, 05:14:39) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import mechanize Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named mechanize >>> 我之前运行的安装报告说它们已成功完成,因此我希望导入工作正常。 是什么导致此错误? 回答1 就我而言,这是权限问题。 该软件包以某种方式仅具有root rw权限安装,其他用户则无法rw! 回答2 我有同样的问题: import
  • (收藏向)超齐全常用python库汇总,有备无患!
    前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资料以及群交流解答点击即可加入 Chardet→字符编码探测器,可以自动检测文本、网页、xml的编码。 colorama →主要用来给文本添加各种颜色,并且非常简单易用。 Prettytable → 主要用于在终端或浏览器端构建格式化的输出。 difflib→ [Python]标准库,计算文本差异Levenshtein,快速计算字符串相似度。 fuzzywuzzy → 字符串模糊匹配。 esmre → 正则表达式的加速器。 shortuuid→ 一组简洁URL/UUID函数库。 ftfy→ Unicode文本工具7 unidecode→ ascii和Unicode文本转换函数。 xpinyin→ 将汉字转换为拼音的函数库 pangu.py→ 调整对中日韩文字当中的字母、数字间距。 pyfiglet→ Python写的figlet程序,使用字符组成ASCII艺术图片 uniout→ 提取字符串中可读写的字符 awesome slugify→ 一个Python slugify库,用于处理Unicode。 python-slugify→ 转换Unicode为ASCII内码的slugify函数库
  • 在单独运行的Python脚本之间传递数据(Passing data between separately running Python scripts)
    问题 如果我正在运行一个python脚本(具有完整的Tkinter GUI和所有功能),并且想要将其收集的实时数据(内部存储在数组等中)传递给另一个python脚本,那么这样做的最佳方法是什么? 我不能简单地将脚本A导入到脚本B中,因为它将创建脚本A的新实例,而不是访问已经运行的脚本A中的任何变量。 我能想到的唯一方法是让脚本A写入文件,然后脚本B从文件中获取数据。 这不是理想的,但是如果脚本B尝试读取脚本A已经写入的文件,可能会发生一些不良情况。另外,我也在寻找两个程序之间通信的更快速度。 编辑:这是根据要求的示例。 我知道为什么这行不通,但这是需要实现的基本前提。 我的源代码很长,很不幸地是机密的,因此这里无济于事。 总而言之,脚本A运行Tkinter并收集数据,而脚本B作为Django的一部分是views.py,但是我希望可以将其作为Python的一部分来实现。 脚本A import time i = 0 def return_data(): return i if __name__ == "__main__": while True: i = i + 1 print i time.sleep(.01) 剧本B import time from scriptA import return_data if __name__ == '__main__': while True
  • 自动将SVN修订号添加到程序中(Getting SVN revision number into a program automatically)
    问题 我在SVN下有一个python项目,我想在运行时显示版本号。 有什么方法可以做到这一点(例如在提交时自动运行一个简短的脚本,该脚本可能会更新版本文件,或者在Python中查询SVN存储库?) 回答1 我不确定Python的详细信息,但是如果将字符串$ Revision $放入文件中的某个位置,并且您在SVN配置中具有enable-auto-props = true,它将被重写为$ Revision:144 $ 。 然后,您可以在脚本中对此进行解析。 您可以通过这种方式使用许多属性关键字。 这不会产生任何开销,例如查询SVN存储库,因为在提交或更新时字符串已硬编码到您的文件中。 我不确定您如何在Python中解析此内容,但在PHP中我会这样做: $revString = '$Revision: 144$'; if(preg_match('/: ([0-9]+)\$/', $revString, $matches) { echo 'Revision is ' . $matches[1]; } 回答2 类似于,但是比PHP答案多一些pythonic; 将其放在模块的__init__.py : __version__ = filter(str.isdigit, "$Revision: 13 $") 并确保添加Revision属性: svn propset svn:keywords
  • 一次性django脚本可以替代已弃用的setup_environ()吗?(Alternative to the deprecated setup_environ() for one-off django scripts?)
    问题 我前一段时间使用setup_environ()编写了一个一次性python脚本,该脚本从命令行运行,但作为自定义manage.py命令(我的首选)根本不太适合。 它可以很好地设置所有内容。 我认为我们不赞成使用此功能,因为非django的pythonista嘲笑djangonauts来处理诸如此类的魔术性东西,我们已经厌倦了感到肮脏。 因此,如果不建议使用该方法,那又有什么选择呢? 也许这是一个懒惰的问题,但是要达到相同的效果,我需要运行什么来代替setup_environ? 我想我可以将函数复制/粘贴到脚本中,但是我认为那不是弃用它的目的。 (显然,我仍然可以使用不推荐使用的函数,但是我希望我的脚本能够在django的几个版本中继续存在) 回答1 这在Django 1.7中已更改 import os import django from myapp import models os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings") django.setup() print models.MyModel.objects.get(pk=1) 回答2 扩大miki725的答案,如果之前没有的话 from django.core.management import setup_environ import
  • Django Celery记录最佳做法(Django Celery Logging Best Practice)
    问题 我正在尝试让Celery日志与Django一起工作。 我在settings.py登录了日志settings.py以进入控制台(当我在Heroku托管时,它可以正常工作)。 在每个模块的顶部,我有: import logging logger = logging.getLogger(__name__) 在我的task.py中,我有: from celery.utils.log import get_task_logger logger = get_task_logger(__name__) 这对于记录来自任务的调用非常有效,并且我得到如下输出: 2012-11-13T18:05:38+00:00 app[worker.1]: [2012-11-13 18:05:38,527: INFO/PoolWorker-2] Syc feed is starting 但是,如果该任务随后调用另一个模块中的方法,例如queryset方法,则会得到重复的日志条目,例如 2012-11-13T18:00:51+00:00 app[worker.1]: [INFO] utils.generic_importers.ftp_processor process(): File xxx.csv already imported. Not downloaded 2012-11-13T18:00:51+00
  • python代码库-Python常用库大全
    Python常用库大全,看看有没有你需要的。 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具。 pyenv – 简单的 Python 版本管理工具。 Vex – 可以在虚拟环境中执行命令。 virtualenv – 创建独立 Python 环境的工具。 virtualenvwrapper- virtualenv 的一组扩展。 包管理 管理包和依赖的工具。 pip – Python 包和依赖关系管理工具。 pip-tools – 保证 Python 包依赖关系更新的一组工具。 conda – 跨平台,Python 二进制包管理工具。 Curdling – 管理 Python 包的命令行工具。 wheel – Python 分发的新标准,意在取代 eggs。 包仓库 本地 PyPI 仓库服务和代理。 warehouse – 下一代 PyPI。 Warehousebandersnatch – PyPA 提供的 PyPI 镜像工具。 devpi – PyPI 服务和打包/测试/分发工具。 localshop – 本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。 分发 打包为可执行文件以便分发。 PyInstaller – 将 Python 程序转换成独立的执行文件(跨平台)。 dh-virtualenv – 构建并将
  • python常用代码大全-Python常用库大全
    Python常用库大全,看看有没有你需要的。 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具。 pyenv – 简单的 Python 版本管理工具。 Vex – 可以在虚拟环境中执行命令。 virtualenv – 创建独立 Python 环境的工具。 virtualenvwrapper- virtualenv 的一组扩展。 包管理 管理包和依赖的工具。 pip – Python 包和依赖关系管理工具。 pip-tools – 保证 Python 包依赖关系更新的一组工具。 conda – 跨平台,Python 二进制包管理工具。 Curdling – 管理 Python 包的命令行工具。 wheel – Python 分发的新标准,意在取代 eggs。 包仓库 本地 PyPI 仓库服务和代理。 warehouse – 下一代 PyPI。 Warehousebandersnatch – PyPA 提供的 PyPI 镜像工具。 devpi – PyPI 服务和打包/测试/分发工具。 localshop – 本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。 分发 打包为可执行文件以便分发。 PyInstaller – 将 Python 程序转换成独立的执行文件(跨平台)。 dh-virtualenv – 构建并将
  • python常用代码大全-Python常用库大全,看看有没有你需要的
    环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具。 pyenv – 简单的 Python 版本管理工具。 Vex – 可以在虚拟环境中执行命令。 virtualenv – 创建独立 Python 环境的工具。 virtualenvwrapper- virtualenv 的一组扩展。 包管理 管理包和依赖的工具。 pip – Python 包和依赖关系管理工具。 pip-tools – 保证 Python 包依赖关系更新的一组工具。 conda – 跨平台,Python 二进制包管理工具。 Curdling – 管理 Python 包的命令行工具。 wheel – Python 分发的新标准,意在取代 eggs。 包仓库 本地 PyPI 仓库服务和代理。 warehouse – 下一代 PyPI。 Warehousebandersnatch – PyPA 提供的 PyPI 镜像工具。 devpi – PyPI 服务和打包/测试/分发工具。 localshop – 本地 PyPI 服务(自定义包并且自动对 PyPI 镜像)。 分发 打包为可执行文件以便分发。 PyInstaller – 将 Python 程序转换成独立的执行文件(跨平台)。 dh-virtualenv – 构建并将 virtualenv 虚拟环境作为一个 Debian
  • 如何将我的秘密密钥和密码安全地保存在版本控制系统中?(How can I save my secret keys and password securely in my version control system?)
    问题 我在版本控制系统中保留了重要的设置,例如开发和生产服务器的主机名和端口。 但是我知道,将秘密(例如私钥和数据库密码)保存在VCS存储库中是一种不好的做法。 但是密码-像其他设置一样-似乎应该对其进行版本控制。 那么,保持密码版本控制的正确方法是什么? 我想这将涉及保持在自己的“秘密设置”文件中的秘密,并且具有文件加密和版本控制。 但是什么技术呢? 以及如何正确地做到这一点? 有没有更好的方法可以完全解决这个问题? 我通常会问这个问题,但是在我的特定实例中,我想使用git和github存储Django / Python站点的秘密密钥和密码。 同样,当我使用git推/拉时,理想的解决方案也会做一些神奇的事情-例如,如果加密的密码文件更改了运行的脚本,该脚本会要求输入密码并将其解密到位。 编辑:为清楚起见,我问在哪里存储的生产秘密。 回答1 您完全想在保持版本控制的同时对敏感的设置文件进行加密是正确的。 正如您所提到的,最好的解决方案是Git在推送某些敏感文件时透明地对其进行加密,以便在本地(即在拥有证书的任何计算机上)可以使用设置文件,但Git或Dropbox或任何人都可以使用在VC下存储文件无法读取纯文本信息。 推/拉过程中的透明加密/解密教程 这个要点https://gist.github.com/873637展示了有关如何使用Git的sms /
  • python第三方库有哪些常用的、请列举15个-你想要的Python面试都在这里了【315+道题】...
    第一部分 Python基础篇(80题) 1、为什么学习Python? 1.python是脚本语言,作为程序员至少应该掌握一本通用脚本语言,因为脚本语言与编译语言的开发测试过程不同,可以极大的提高编程效率; 2.python差不多是现在最流行的通用脚本语言。 这里强调是通用。与python相似的只有ruby, tcl, perl等少数几种。 而python过去被称为脚本语言之王; 3.python有广泛的社区基本,可以说,只要你想到的问题,只要你需要使用的第三方库,基本上都是python的接口。so easy; 4.python开发效率高,同样的任务,大约是java的10倍,c++的10-20倍; 5.python在科研上有大量的应用,大数据计算,模拟计算,科学计算都有很多的包; 6.python几乎在每一个linux操作系统上都安装有。大部分unix系统也都缺省安装,使用方便; 7.python有独立的运行库,几乎不依赖第三方软件就可以完成大部分的系统运维和常见任务的开发;python帮助里还有许多例子代码,几乎拿过来略改一下就可以正式使用。 2、通过什么途径学习的Python? 1.自学 2.网上看视频 3.练习代码,写程序 3、Python和Java、PHP、C、C#、C++等其他语言的对比? 1.python语言,是一种面向对象、直译式计算机程序设计语¨