Beispiel #1
0
def add_error(nums: int):
    create_app().app_context().push()
    es = ['功能问题', "性能问题", "界面问题", "设计问题", "其他"]
    for i in range(len(es)):
        ErrorType(name=es[i], productId=9).save()

    print("ok")
Beispiel #2
0
def add_user(nums: int):
    create_app().app_context().push()

    for i in range(nums):
        User(account=f.cname(), name=f.name(), password=f.password(), admin=True, department=random.randint(1, 10),email=f.email(),
             phone=f.phone_number(),
             gender=random.choice([True, False])).save()

    print("ok")
Beispiel #3
0
class SearchParamsParse:
    from APP import create_app
    from sqlalchemy import create_engine

    condition = ["in", "not in", "=", ">", "<"]
    OR = "or "
    AND = "and "
    sql = f"select * from bugs where "
    eng = create_engine(create_app().config['SQLALCHEMY_DATABASE_URI'],
                        echo=False)

    def __init__(self, body: list, opt: str):

        self.option = opt
        self.body = self._verify(body)
        self.param = None

    def _verify(self, body: list) -> list:
        for b in body:
            if not b.get("key") and not b.get("condition") and not b.get(
                    "val"):
                abort(
                    myResponse(ResponseCode.SQL_PARAM_ERROR, None,
                               ResponseError.INVALID_PARAMS))
            if b.get("condition") not in self.condition:
                abort(
                    myResponse(ResponseCode.SQL_PARAM_ERROR, None,
                               errorValue(b.get('condition'))))

        return body

    def _paramParse(self):
        sql = ""

        if self.option == self.OR:
            for b in self.body:
                s = " ".join([
                    b.get("key"),
                    b.get("condition"), '"' + str(b.get('val')) + '"', self.OR
                ])
                sql += s
        else:
            for b in self.body:
                s = " ".join([
                    b.get("key"),
                    b.get("condition"), '"' + str(b.get('val')) + '"', self.AND
                ])
                sql += s
        return sql.strip("and ")

    def filter(self) -> list:
        sql = self.sql + self._paramParse()
        try:
            res = self.eng.execute(sql)
            return res.fetchall()
        except Exception as e:

            abort(
                myResponse(ResponseCode.SQL_ERROR, None,
                           ResponseError.SOME_ERROR_TRY_AGAIN))
Beispiel #4
0
======================================选择环境================================================
'''
'''
os.getenv('FLASK_ENV')
""获取一个环境变量,如果它不存在,返回None。
可选的第二个参数可以指定另一个默认值。
key, default和结果是str 输入也是str"""
'''
config_name = os.getenv('FLASK_ENV') or 'default'

# Terminal 命令 export FLASK_ENV=default
'''
=====================================创建__init__完后的app====================================
'''

app = create_app(config_name)
'''
=====================================创建管理app对象=========================================
'''

manager = Manager(app)
'''
==================================向manager添加一条数据库命令==========================================
'''
# 向manager添加一条db命令,参数是MigrateCmmand
manager.add_command('db', MigrateCommand)
'''
命令有:
    manage.py: error: invalid choice: 'help' (choose from 'db', 'shell', 'runserver')
    python manage.py db  --  查看有什么命令方法 -- init初始化 创建migration file
                         --  migrate -- 生成迁移表
Beispiel #5
0
# -*- coding:utf-8 -*-
# @TIME     : 2018/10/15  20:46
# @AUTHOR   : LXH
# @FILE     : manage.py # 程序入口,安装app给manage控制程序启动

# 导入app初始化方法
from APP import create_app

# 导入运行脚本
from flask_script import Manager

# 导入环境
import os
# 'FLASK_ENV'为环境变量名,可设置,可去config文件去查找,通用环境,做修改
#  [注意:要运行一次命令]Terminal: export FLASK_ENV=default
# 设置这两个先相等,这里的FLASK_ENV也就相当于形参的作用
config_name = os.getenv('FLASK_ENV') or 'default'

app = create_app(config_name)  # 获得环境变量后,在此实例化出来

manager = Manager(app)  # 把app交给manager控制程序的启动


# 测试运行
@app.route('/hello/')
def hello():
    return 'ok'


if __name__ == '__main__':
    manager.run()
Beispiel #6
0
from APP import models
from APP import create_app
from flask_script import Manager
from flask_migrate import Migrate  #用了同步数据库
from flask_migrate import MigrateCommand
from gevent import monkey

monkey.patch_all()
app = create_app("running")  #
manager = Manager(app)  #
migrate = Migrate(app, models)
manager.add_command("db", MigrateCommand)


@manager.command
def runserver_gevent():
    from gevent import pywsgi
    server = pywsgi.WSGIServer(("127.0.0.1", 5000), app)
    server.serve_forever()


if __name__ == '__main__':
    manager.run()
Beispiel #7
0
class SqlOpt:
    eng = create_engine(create_app().config['SQLALCHEMY_DATABASE_URI'],
                        echo=False)
    conditions = ["like", "=", ">", "<"]
    opts = ['and', "or"]

    def __init__(self, table):
        self.table = table

    def select(self, params: list, targets: list = None, limit=None):
        """
        select title, level from bugs where id > 1 and level = 'p1'
        :targets:[title, level]
        :params:     [{"key": "id", "val": 2, "condition": "=", "opt": "or"},
                      {"key": "id", "val": 3, "condition": "=", "opt": "or"},
                      {"key": "title", "val": "004", "condition": "like", "opt": "or"}]
        :return:
        """
        params = self._verify(params)
        if targets:
            sql = f"SELECT {', '.join([k for k in targets])} FROM {self.table} WHERE "
        else:
            sql = f"SELECT * FROM {self.table} WHERE "

        for param in params:
            s = " ".join([
                param.get("key"),
                param.get("condition").upper(), f' "' + str(param.get('val')) +
                '" ' + f"{param.get('opt')} ".upper()
            ])
            sql += s
        sql = sql.rstrip(f"AND ").rstrip("OR ")
        return self._doSelect(sql, limit)

    def update(self, params: list, targets: list, opt: str = "and") -> bool:
        """
        update table set title = 'test' where id =1 and p1
        :params: [{"key":"id",condition:[ ">"|"<"|"=" ],"val":"1"},]
        ;targets [{"key":""title","val":"test"},{"key":"level","val":"p1"}]
        :return:
        """
        params = self._verify(params)
        tar = ""
        for i in targets:
            tar += i["key"]
            tar += " = "
            tar += f"'{i['val']}'"
            tar += ", "
        tar = tar.strip(", ")
        sql = f"UPDATE {self.table} SET {tar} WHERE "
        if len(params) > 1:
            for param in params:
                s = " ".join([
                    param.get("key"),
                    param.get("condition"),
                    '"' + str(param.get('val')) + '" ' + f"{opt} ".upper()
                ])
                sql += s
            sql = sql.rstrip(f"{opt} ".upper())
        else:
            param = params[0]
            s = " ".join([
                param.get("key"),
                param.get("condition"), '"' + str(param.get('val')) + '"'
            ])
            sql += s

        try:
            self.eng.execute(sql)
            log.info(f"sql: {sql}")
            return True
        except Exception as e:
            log.error(e)
            return False

    def insert(self, params: list):
        """
        insert into table values (val1,val2)
        insert into table (const1,const2) values (val1,val2)
        :param [{"key":"name","val":"cyq"]
        :return:
        """
        const = list()
        values = list()

        for param in params:
            const.append(param['key'])
            values.append(f"'{str(param['val'])}'")
        sql = f"INSERT INTO {self.table} ({','.join(const)}) VALUES ({','.join(values)})  "
        try:
            self.eng.execute(sql)
            log.info(f"sql: {sql}")
            return True
        except Exception as e:
            log.error(e)
            return False

    def delete(self, params: list, opt: str = "") -> bool:
        """
        delete from table where k=v
        :params: [{"key":"id",condition:[ ">"|"<"|"=" ],"val":"1"},]
        :opt : AND OR None
        :return:
        """
        sql = f"DELETE FROM {self.table} WHERE "
        params = self._verify(params)
        for param in params:
            s = " ".join([
                param.get("key"),
                param.get("condition"),
                '"' + str(param.get('val')) + '" ' + f"{opt} ".upper()
            ])
            sql += s

        sql = sql.rstrip(f"{opt} ".upper())

        try:
            self.eng.execute(sql)
            log.info(f"sql: {sql}")
            return True
        except Exception as e:
            print(e)
            log.error(e)
            return False

    def _doSelect(self, sql, limit) -> list:
        try:
            res = self.eng.execute(sql)
            log.info(f"sql: {sql}")
            if limit:
                return res.fetchmany(limit)
            else:
                return res.fetchall()
        except Exception as e:
            log.error(e)
            return []

    def _verify(self, body: list) -> list:
        for param in body:
            if not param.get("key") and not param.get(
                    "condition") and not param.get("val") and not param.get(
                        "opt"):
                abort(
                    myResponse(ResponseCode.SQL_PARAM_ERROR, None,
                               errorValue("")))
            if param.get("condition") not in self.conditions:
                abort(
                    myResponse(ResponseCode.SQL_PARAM_ERROR, None,
                               errorValue(param.get('condition'))))
            if param.get("condition") == "like":
                param['val'] = f"%{param['val']}%"
            if param.get("opt") not in self.opts:
                abort(
                    myResponse(ResponseCode.SQL_PARAM_ERROR, None,
                               errorValue(param.get('opt'))))

        return body
Beispiel #8
0
def add_project(nums: int):
    create_app().app_context().push()

    for i in range(nums):
        Project(name=f.company()).save()
    print("ok")
Beispiel #9
0
 def setUp(self):
     self.app = create_app(TestConfig)
     self.app_context = self.app.app_context()
     self.app_context.push()
     db.create_all()
Beispiel #10
0
def add_version(nums: int):
    create_app().app_context().push()
    for i in range(nums):
        Build(name=f.ipv4(), productId=9).save()

    print("ok")
Beispiel #11
0
def add_platform(nums: int):
    create_app().app_context().push()
    p = ['Ios', "Andriod", "Windows", "Web", "Mac"]
    for i in range(len(p)):
        Platform(name=p[i], productId=9).save()
    print("ok")
Beispiel #12
0
def add_solution(nums: int):
    create_app().app_context().push()
    s = ['设计如此', '重复缺陷', '不予解决', '无法重现', '已解决', '信息不足', '设计如此', '其他']
    for i in range(len(s)):
        Solution(name=s[i], productId=9).save()
    print('ok')
Beispiel #13
0
def add_product(nums: int):
    create_app().app_context().push()
    Product(name="cyqProduct",projectId=11).save()

    print("ok")
Beispiel #14
0
def add_department(nums: int):
    create_app().app_context().push()

    for i in range(nums):
        Department(name=f.job()).save()
    print("ok")
Beispiel #15
0
# -*- coding:utf-8 -*-
# @Time : 2020/3/8 12:47
# @Author : Bravezhangw
# @File : manage.py.py
# @Software: PyCharm
# @Organization : NJU
# @email : [email protected]
import os

from flask_script import Manager
from flask_migrate import MigrateCommand

from APP import create_app
env = os.environ.get("FLASK_ENV", "develop")
app = create_app(env)
manager = Manager(app)
manager.add_command("db", MigrateCommand)

if __name__ == '__main__':
    manager.run()
Beispiel #16
0
#! /usr/bin/env python
# -*- coding: utf-8 -*-
"""
本文件是flask项目的启动脚本
常用命令包括:
1. python manage.py runserver  启动服务进程(单线程)
2. python manage.py db init/migrate/upgrade  管理数据库
"""

import os
import sys
from APP import create_app, db
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand

sys.path.append('APP/ssd/')
sys.path.append('APP/fasterrcnn/')

app = create_app(os.getenv('APP_CONFIG') or 'default')
manager = Manager(app)
migrate = Migrate(app, db)

manager.add_command('db', MigrateCommand)

if __name__ == '__main__':
    manager.run()
Beispiel #17
0
def add_module():
    create_app().app_context().push()
    mo = ['登陆',"注册","联系人","通话","收藏","删除"]
    for i in mo:

        Module(name=i,productId=9).save()
Beispiel #18
0
import unittest
from APP import create_app
from faker import Faker
app = create_app()


class MyTestCase(unittest.TestCase):
    def setUp(self) -> None:
        app.testing = True
        self.f = Faker()

        self.body = {
            "account": self.f.name(),
            "name": self.f.name(),
            "password": self.f.password(),
            "admin": True,
            "gender": False
        }
        self.client = app.test_client()

    def test_something(self):
        self.assertEqual(True, False)


if __name__ == '__main__':
    unittest.main()
Beispiel #19
0
import os
from flask_migrate import MigrateCommand, Migrate
from APP.user.models import UserModel, post_tag, PostsModel
from flask_script import Manager
from APP import create_app, config
from APP.extension import db

# 导入所有app配置
app = create_app(config)
# 命令行
manager = Manager(app)
# 数据库迁移
migrate = Migrate(app, db)
manager.add_command("db", MigrateCommand)

# python manage.py db init
# python manage.py db migrate
# python manage.py db upgrade
# celery -A task.celery worker --loglevel=info
if __name__ == '__main__':
    manager.run()