单独的 python 脚本文件使用 django 自带的 model
2018-07-30 10:01
627 查看
django1.9.5&python3.4.4
文件结构
在一个爬虫脚本中将爬取的数据通过django自带的model保存到数据库
修改的文件(其余pycharm新建Django项目生成,未修改):
虚拟欢迎需要安装django
文件结构
在一个爬虫脚本中将爬取的数据通过django自带的model保存到数据库
修改的文件(其余pycharm新建Django项目生成,未修改):
# 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
- 使用PyInstaller2将Python脚本转化为可执行文件(下-进阶使用)(转载自博客园balian)
- 使用cxfreeze将python脚本转化二进制可执行文件
- 使用PyInstaller2将Python脚本转化为可执行文件(中-使用部分)
- python-django如何在sae中使用自带ImageField和FileField -django-上善若水小站
- [转]使用PyInstaller2将Python脚本转化为可执行文件(上-安装部分)
- 使用PyInstaller2将Python脚本转化为可执行文件(下-进阶使用)
- 外部python脚本调用django model
- 使用Python创建.sd服务定义文件,实现脚本自动发布ArcGIS服务
- python使用7z解压软件备份文件脚本分享
- 两个使用Python脚本操作文件的小示例分享
- 两个使用Python脚本操作文件的小示例分享
- Selenium webdriver 使用python脚本处理SWFupload 文件上传
- Python Shell 解释器下使用Django Model
- 使用PyInstaller2将Python脚本转化为可执行文件(上-安装部分)
- 使用PyInstaller2将Python脚本转化为可执行文件(上-安装部分)
- 使用py2exe将python 脚本生成exe可执行文件
- 使用PyInstaller2将Python脚本转化为可执行文件(上-安装部分)(转载自博客园balian)
- 【脚本】使用 Python SimpleHTTPServer 快速共享文件
- 使用PyInstaller2将Python脚本转化为可执行文件(中-使用部分)(转载自博客园balian)