def __init__(self, type, name): ''' redis的默认参数为:host='localhost', port=6379, db=0, 其中db为定义redis database的数量; key 是hash的名称; type 是类型,比如:cookie, ip; name 是需要维护的网站名称,比如:sycm,huoniu; :param type: :param name: ''' self.__db = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT, db=REDIS_DB_ID) self.key = '{type}:{user_name}'.format(type=type, user_name=name) self.logger = get_logger()
# -*- coding: utf-8 -*- import os import sys __project_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) if __project_path not in sys.path: sys.path.append(__project_path) import mongo_db import datetime from log_module import get_logger ObjectId = mongo_db.ObjectId logger = get_logger() """ 员工模块 目前支持的数据库是mongodb 4.0+ 基于角色的权限管理+扩展的访问规则 用于对项目的用户的权限进行管理. """ class Company(mongo_db.BaseDoc): """ 公司. 卡佑 """ _table_name = "company" type_dict = dict() type_dict['_id'] = ObjectId type_dict['name'] = str # 公司名 type_dict['license_id'] = str # 工商许可证id type_dict['create_time'] = datetime.datetime # 创建时间
from tornado.options import define, options import tornado.websocket import random import mongo_db import hashlib import requests import urllib.request import urllib.parse import platform from tools_module import get_platform_cors_session_dict from tools_module import save_platform_cors_session from tools_module import save_platform_cors_session from api.data.item_module import Track from manage.company_module import Employee logger = log_module.get_logger("ws_server") cache = mongo_db.cache class BlackIpDict: """黑名单类""" cache_key = "ws_handler_black_ip_dict" black_ip_map = cache.get(cache_key) if black_ip_map is None: black_ip_map = dict() @classmethod def clear(cls) -> None: """清除缓存中的数据""" key = cls.cache_key cache.delete(key)
def __init__(self): super(ProxyCheck, self).__init__() self.redis = RedisQueue('ip') self.my_utils = Utility() self.logger = get_logger()
def __init__(self): self.logger = get_logger()
project_dir = os.path.split(os.path.split(sys.path[0])[0])[0] if project_dir not in sys.path: sys.path.append(project_dir) from log_module import get_logger import smtplib from email.mime.text import MIMEText from email.mime.application import MIMEApplication from email.mime.multipart import MIMEMultipart from werkzeug.contrib.cache import RedisCache import datetime """客户经理的电子邮件模块""" my_email = "*****@*****.**" my_auth = "wsyargefvundcaej" # 授权码 cache = RedisCache() logger = get_logger(os.path.split(__file__)[-1].split(".", 1)[0]) def send_mail(to_email: str = "*****@*****.**", title: str = 'hello', content: str = '', files: list = None) -> bool: """ 发送邮件, :param to_email: 目的邮件地址 :param title: 主题 :param content: 正文 :param files: 附件的list[{"path":file_path,"name":file_name},...] :return: 是否发送成功 """ msg = MIMEMultipart()
from log_module import get_logger from celery import Celery from api.data import item_module from bson.objectid import ObjectId from api.data.item_module import * from api.user.security_module import * from api.data.file_module import when_upload_success from api.data.file_module import unzip_all_user_file from mongo_db import get_conn, get_obj_id, cache, replica_hosts import telnetlib from kombu import Exchange, Queue from mail_module import send_mail from manage.analysis_module import backup import requests logger = get_logger("celery") """ exchange 相同的是同一个队列 routing_key 会匹配函数名 save_gps: 存gps数据的而队列,现在不会被使用 save_sensor: 存传感器数据的而队列,现在不会被使用 unzip_file: 解压app用户上传的文件,是一个重负载的队列 """ # # CELERY_QUEUES = { # "test": {"queue": "test", "exchange_type": "direct", "routing_key": "test"}, # "batch_generator_report":{"queue":"batch_generator_report_exchange", "exchange_type":"direct", "routing_key": "batch_generator_report"}, # "real_time_gps": "" # # Queue(name="fanout_queue_01", exchange=Exchange(name='fanout_queue_01_exchange', type="fanout")), # 广播类型 # }
# -*- coding: utf-8 -*- from __future__ import absolute_import import os import sys __project_dir__ = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) if __project_dir__ not in sys.path: sys.path.append(__project_dir__) from celery import Celery from log_module import get_logger """celery主模块""" app = Celery(main="first_celery", backend="redis://127.0.0.1:6379/15", broker="redis://127.0.0.1:6379/14", timezone="Asia/Shanghai", include=['celery_module.my_tasks']) app.conf.update(result_expires=3600) app.log.redirect_stdouts_to_logger(logger=get_logger("celery"), loglevel=10) if __name__ == "__main__": app.start() pass
def __init__(self, name, namespace='Base'): # redis的默认参数为:host='localhost', port=6379, db=0, 其中db为定义redis database的数量 self.__db = redis.Redis(host=REDIS_HOST, port=REDIS_PORT, db=REDIS_DB_ID) self.key = '%s:%s' % (namespace, name) self.logger = get_logger()
import pyowm from flask import render_template, request, Blueprint import log_module as logger import wikipedia as wiki import pycountry import re from wikipedia import DisambiguationError the_logger = logger.get_logger(__name__) "The logger object for this module" weather_page = Blueprint('weather_page', __name__, template_folder='templates') "The blueprint (sub-component) to be referenced by the main module (app.py)" owm = pyowm.OWM('<keygoeshere>') "The object to interact with OWM API" owm_error_message = '' "The error message in case an exception occurs on OWM side" wiki_error_message = '' "The error message in case an exception occurs on Wikipedia side" observation = None "The Observation object retrieved by OWM API, from which Location and Weather objects are retrieved" @weather_page.route('/weather', methods=['GET', 'POST']) def weather_info(): """ Function to manage the GET and POST requests from the /weather page of the application.
# -*- coding: utf-8 -*- from flask import Flask from flask import request from flask import session from flask import render_template from flask_socketio import SocketIO import os import json from log_module import get_logger """这是一个flask-socketio服务器,用于提供实时的消息传递""" app = Flask(__name__) app.config['SECRET_KEY'] = os.urandom(24) socket_io = SocketIO(app) port = 5006 logger = get_logger("web_socket_server") @app.route("/") def client_demo_func(): """socketio客户端示范页面""" return render_template("socket_io/io_client_demo.html") @socket_io.on("demo") def message_handler_func(mes): """socketio接收到消息的时候""" print(mes) return "ok"
# -*- coding: utf-8 -*- import os import sys __project_dir__ = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) if __project_dir__ not in sys.path: sys.path.append(__project_dir__) import orm_module import datetime import json from log_module import get_logger """ 条码模块 """ logger = get_logger("条码查询") ObjectId = orm_module.ObjectId cache = orm_module.RedisCache() def set_code_length(length: int = 0) -> int: """ 设置标准条码长度. 默认35 :param length: :return: """ if length == 0: """从数据库查询""" col = orm_module.get_conn(table_name="company_info") r = col.find_one() if isinstance(r, dict):