单独的 python 脚本文件使用 django 自带的 model
django1.9.5&python3.4.4
文件结构
# testapp/models.py
from django.db import models class Problem(models.Model):
title = models.CharField(max_length=100, default="")
author = models.CharField(max_length=100, default="")
def __str__(self):
return self.title
pass
虚拟欢迎需要安装django
# push_view
import os
import sys
import django pathname = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, pathname)
sys.path.insert(0, os.path.abspath(os.path.join(pathname, '..')))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xad_unit.settings") django.setup() from datetime import datetime
import time
from pv_uv.views import exec_sql
from pv_uv.models import Cpd class Sql_Tool(object): def zy_sql(self, date):
#sql = 'select ngx_date, path, event_type, count(distinct request_id) as num from xad_app_log where path = "/xad_tracking" and event_type in ("xad_dl_start", "xad_dl_success", "xad_install_start", "xad_install_success", "xad_click_tracking", "xad_impression") and ngx_date="{}"and ad_system="{}" group by ngx_date, path, event_type order by ngx_date, path, event_type limit 1000'.format(
# date, 'liyanmobi') sql = 'select ngx_date, path, event_type, count(distinct request_id) as num from xad_app_log where path = "/xad_tracking" and event_type in ("xad_dl_start", "xad_dl_success", "xad_install_start", "xad_install_success", "xad_click_tracking", "xad_impression") and ngx_date>="{}" and ad_system="{}" and req_from="1" group by ngx_date, path, event_type order by ngx_date, path, event_type limit 1000'.format(
date, 'liyanmobi') l_list = exec_sql(sql)
return l_list def strint_toDate(self, string):
return datetime.strptime(string, '%Y%m%d') if __name__ == '__main__': sql_tool = Sql_Tool()
current_time = time.strftime('%Y%m%d', time.localtime(time.time()))
#current_time = '20180726'
l_list = sql_tool.zy_sql(current_time) print(l_list)
#l_list = [{'ngx_date': '20180726', 'path': '/xad_tracking', 'event_type': 'xad_click_tracking', 'num': 302}, {'ngx_date': '20180726', 'path': '/xad_tracking', 'event_type': 'xad_dl_start', 'num': 182}, {'ngx_date': '20180726', 'path': '/xad_tracking', 'event_type': 'xad_dl_success', 'num': 101}, {'ngx_date': '20180726', 'path': '/xad_tracking', 'event_type': 'xad_impression', 'num': 301}, {'ngx_date': '20180726', 'path': '/xad_tracking', 'event_type': 'xad_install_start', 'num': 101}, {'ngx_date': '20180726', 'path': '/xad_tracking', 'event_type': 'xad_install_success', 'num': 42}]
l2 = l_list
l_list = list()
tmp_set = set() for i_dict in l2:
tmp_dict = dict()
date1 = i_dict.get('ngx_date')
if date1 not in tmp_set:
tmp_set.add(date1)
else:
continue for i_i_dict in l2:
date2 = i_i_dict.get('ngx_date') if date1 == date2:
tmp_dict['ngx_date'] = i_i_dict.get('ngx_date')
tmp_dict[str(i_i_dict.get('event_type'))] = i_i_dict.get('num')
l_list.append(tmp_dict)
tmp_dict = dict() print(l_list)
for i_dict in l_list:
cpd = Cpd()
for key, value in i_dict.items(): if key == 'ngx_date':
a = sql_tool.strint_toDate(i_dict.get('ngx_date'))
cpd.ngx_date = sql_tool.strint_toDate(i_dict.get('ngx_date'))
if key == 'xad_click_tracking':
cpd.xad_click_tracking = key
cpd.xad_click_tracking_nums = value
if key == 'xad_dl_start':
cpd.xad_dl_start = key
cpd.xad_dl_start_nums = value
if key == 'xad_dl_success':
cpd.xad_dl_success = key
cpd.xad_dl_success_nums = value
if key == 'xad_impression':
cpd.xad_impression = key
cpd.xad_impression_nums = value
if key == 'xad_install_start':
cpd.xad_install_start = key
cpd.xad_install_start_nums = value
if key == 'xad_install_success':
cpd.xad_install_success = key
cpd.xad_install_success_nums = value
cpd.save()
单独的 python 脚本文件使用 django 自带的 model的更多相关文章
- django系列5.4--ORM中执行原生SQL语句, Python脚本中调用django环境
ORM执行原生sql语句 在模型查询API不够用的情况下,我们还可以使用原始的SQL语句进行查询. Django 提供两种方法使用原始SQL进行查询:一种是使用raw()方法,进行原始SQL查询并返回 ...
- Django框架(八)--单表增删改查,在Python脚本中调用Django环境
一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的setting中进行配置: 将DATABASES={} 更新为 DA ...
- Django框架(九)—— 单表增删改查,在Python脚本中调用Django环境
目录 单表增删改查,在Python脚本中调用Django环境 一.数据库连接配置 二.orm创建表和字段 三.单表增删改查 1.增加数据 2.删除数据 3.修改数据 4.查询数据 四.在Python脚 ...
- Python--day69--pythonDjango终端打印SQL语句、在Python脚本中调用Django环境
Django终端打印SQL语句 在Django项目的settings.py文件中,在最后复制粘贴如下代码: LOGGING = { 'version': 1, 'disable_existing_lo ...
- ORM基础3 在python脚本里调用Django环境
1.查询 1.# all获取所有的object,结果QuerySet,列表 print('all'.center(80, '=')) ret = models.Person.objects.all() ...
- $Django 多表操作(增删改查,基于双下划线,对象的查询) 在Python脚本中调用Django环境
在Python脚本中调用Django环境. import osif __name__ == '__main__': os.environ.setdefault("DJANGO_SETTING ...
- Python核心笔记:在python文件中如何调用其它python脚本文件,你肯定不会
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:zhujuyu 笔者在自学python的时候遇到了这样一个练习题:将 ...
- python脚本文件删除
昨天有需求需要用python脚本删除一个目录下的文件.遇到了点麻烦. 使用的是shutil.rmtree(dir)函数,这个函数可以删除有内容的目录,而shutil.rmdir(dir)只能删除空目录 ...
- Django框架----在Python脚本中调用Django环境
在项目根目录下新建脚本文件script.py import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTI ...
随机推荐
- 使用 numpy.random.choice随机采样
使用 numpy.random.choice随机采样: 说明: numpy.random.choice(a, size=None, replace=True, p=None) 示例: >> ...
- Linux主要shell命令详解(中)
shell中的特殊字符 shell中除使用普通字符外,还可以使用一些具有特殊含义和功能的特殊字符.在使用它们时应注意其特殊的含义和作用范围.下面分别对这些特殊字符加以介绍. 1. 通配符 通配符用于模 ...
- 解析form表单数据
//解析form表单数据 function parseFormData(params) { var args = new Object(); for(var key in params){ if(!p ...
- 【MySQL】MySQL之MySQL5.7中文乱码
自己的MySQL服务器不能添加中文,于是自己使用 show variables like 'character%'; 查看了当前的编码格式 我又通过以下方法将其设置为utf-8 SET charact ...
- 轻量级验证码生成插件webutil-licenseImage源码与实例应用
webutil-licenseImage 插件内置4种验证码样式,支持用户扩展.自定义样式实现简单验证码. 源码脱管地址: http://code.google.com/p/licenseimage/ ...
- Java中Map相关的快速查找算法与唯一性(转载)
原文地址:http://blog.csdn.net/chuyuqing/article/details/19629229 在对<Set和hashCode()>的一篇原创文章写完后,由于对自 ...
- android安卓系统上运行jar文件
原文链接: http://blog.sina.com.cn/s/blog_658c8cea0101mdhp.html 步骤如下: 1. 将文件打包成可执行jar文件(可在eclipse里export) ...
- .net自定义控件Control、WebControl、CompositeControl
一.呈现方法 1.Control主要有以下4个方法用于呈现 //该方法为入口方法 public virtual void RenderControl (HtmlTextWriter writer) { ...
- pyspark RandomForestRegressor 随机森林回归
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Fri Jun 8 09:27:08 2018 ...
- C#基础第二天-作业-九九乘法表-打印星星
一.打印九九乘法表图形为下列效果图中的三角型的一种例: 图一效果1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 ...