任何django项目的自定义基于电子邮件的报告。

django-reporter的Python项目详细描述


===============
django记者
=============== < BR>
一个django应用程序,用于创建.csv格式的自动电子邮件报告。它
包括一个管理命令,该命令旨在从 克隆 < BR>
安装
************ < BR>
要安装: < BR>
pip安装django reporter < BR>
然后将"reporter"添加到已安装的应用: < BR>
已安装的应用程序=(

"报告者", < BR>< BR>
另外,请确保项目的电子邮件设置正确。 < BR>
创建报告
**************** < BR>
与django的管理应用程序类似,报表是在*reports.py*文件中创建的
在已安装的应用程序中。在每个*报表中。py*应该位于
至少有一个报表是"reporter.basereport"类的子类。后
子类已定义,请使用``reporter.register()``函数注册
报告。子类应该至少定义两个属性并实现
下面详细介绍几种方法。查看*sample_reports.py*文件
简单报告的示例。 < BR>
必需属性
------ < BR>
基本报表应该有一个docstring(用``--list all显示``
管理命令上的选项),并且至少需要两个属性,
``名称``和``频率`。 < BR>
例如,示例报告的开头是: < BR>
类adminlogreport(reporter.basereport):
"
发送当天的完整管理日志信息,按用户细分
"
名称='管理日志'
频率=["每日"] < BR>
``姓名``
~~~~~~~~ < BR>
属性::basereport.name < BR>
调用"report"管理命令时使用的报表名称。 < BR>
``频率``
~~~~~~~~~~~~~~~ < BR>
属性::basereport.frequencies < BR>
此报告可用的频率。 < BR>
内置属性
------ < BR>
基类自动设置许多可用的属性
在子类中。 < BR>
``频率``
~~~~~~~~~~~~~ < BR>
属性::basereport.frequency < BR>
报告的请求频率。这可以用来确定
报告中要筛选的正确日期范围。 < BR>
``日期``
~~~~~~~~ < BR>
属性::basereport.date < BR>
报告的请求日期。如果未提供日期,则默认为今天。 < BR>
``明天``
~~~~~~~~~~~~ < BR>
属性::basereport.tomorrow < BR>
请求的日期加上1天。 < BR>
``一周``
~~~~~~~~~~~~ < BR>
属性::basereport.one_week < BR>
请求的日期减去7天。 < BR>
``一个月``
~~~~~~~~~~~~~ < BR>
属性::basereport.one_month < BR>
请求的日期减去32天。 < BR>
``参数``
~~~~~~~~ < BR>
属性::basereport.args < BR>
管理层传递给报表的附加参数列表
命令。 < BR> 方法/方法
< BR>
需要在子类中实现这些方法,以便
生成报告。 < BR>
``获取默认收件人``
~~~~~~~~~~~~~~~~~~~~~~~~~~ < BR>
方法::basereport.get_default_recipients(self): < BR>
此方法由基类的"send_results"方法调用。它
提供电子邮件的默认收件人,如果收件人
不会被管理命令上的`--recipients``选项覆盖。
这将返回一个字符串列表,其中包含每个字符串的电子邮件地址
收件人。 < BR>
``获取电子邮件主题``
~~~~~~~~~~~~~~~~~~~~~ < BR>
方法::basereport.get_email_subject(self): < BR>
基类的"send_results"方法也调用此方法。它 普罗比des发送的电子邮件的主题行。它应该返回一个 字符串。 < BR>
``获取数据``
~~~~~~~~~~~~ < BR>
基类调用这个方法来检索应该
转换为CSV并通过电子邮件发送。这将返回一个
行,每行由字段列表组成。 < BR>
例如,在示例"管理日志"报表中,在
"get_data"方法的顶部: < BR>
数据=[["用户名"、"时间"、"操作"、"内容类型"、"ID"、"名称"]] < BR>
然后,对于每一行数据,在这些字段中追加一个数据列表: < BR>
data.append([log.user,time,actions[log.action_flag],
log.content_type.name、log.object_id、obj_name]) < BR>
注册
---- < BR>
一旦在*report s.py*文件中定义了报表,就可以
已注册。示例报表在文件底部注册其类: < BR>
报告者注册(adminlogreport) < BR>
运行报告
*************** < BR>
要运行报表,请使用"report"管理命令。 < BR><用法>用法:: < BR>
报告[选项]频率报告名称[报告参数] < BR>
有效频率为"每日"、"每周"和"每月"。默认情况下,
报告通过电子邮件发送给报告的默认收件人。这可以
通过`--recipients``选项覆盖。后面的附加参数
报表名称将传递给报表。 < BR> 选项/选项
< BR>
``-v,--视图``
~~~~~~~~~~~~~~ < BR>
将数据发送到stdout,而不是通过电子邮件发送或保存到文件。 < BR>
``-f文件,--filename=文件``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ < BR>
不要通过电子邮件发送结果,而是将结果保存到提供的文件名中。 < BR>
``-r个收件人,--recipients=个收件人``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ < BR>
覆盖报表的默认收件人。分开每个电子邮件地址
带逗号。不要使用空格。 < BR>
``-l,--列出所有``
~~~~~~~~~~~~~~~~~~ < BR>
列出所有可用的报告,然后退出。 < BR>
``-d年-月-日,--日=年-月-日``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ < BR>
提供运行报表的日期。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Jsonify使用Jackson来定义嵌套对象   在Swing中禁用java图形调试   java Selenium Webdriver拖放在Jenkins上不起作用   java我对一个显示器的问题有一个非常不切实际的询问   java增强的“for”循环导致ArrayIndexOutOfBoundsException   ArrayAdapter适用于Java中的安卓编程,字符串数组   linux在Ubuntu上通过PulseAudio播放Java音频文件时出错   java在Spring应用程序中加载内部(类路径)和外部属性文件   java使用Maven连接到mySQL   Java应用程序的设计   websocket在电报api java中与dc的连接   java XMLStreamException,因为xml中的(&N)   java从控制台输出到JTextArea   Java导出文本文件   java实现parseInt方法   java为什么servlet容器会同步对特定资源/servlet的多个请求的访问?   循环中的Java“while”变量   用Java编程一个国际象棋游戏,gameOver布尔不起作用   java如何获得真正的JPanel大小?