Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Flask调用Python文件中的函数_Python_Flask - Fatal编程技术网

使用Flask调用Python文件中的函数

使用Flask调用Python文件中的函数,python,flask,Python,Flask,我有一个名为testing_file.py的python文件: from datetime import datetime import MySQLdb # Open database connection class DB(): def __init__(self, server, user, password, db_name): db = MySQLdb.connect(server, user, password,

我有一个名为testing_file.py的python文件:

    from datetime import datetime
    import MySQLdb

    # Open database connection
    class DB():
        def __init__(self, server, user, password, db_name):
            db = MySQLdb.connect(server, user, password, db_name )
            self.cur = db.cursor()

        def time_statistic(self, start_date, end_date):

            time_list = {}

            sql = "SELECT activity_log.datetime, activity_log.user_id FROM activity_log"
            self.cur.execute(sql)
            self.date_data = self.cur.fetchall()
            for content in self.date_data:

                timestamp = str(content[0])
                datetime_object = datetime.strptime(timestamp, '%Y-%m-%d %H:%M:%S')
                timestamps = datetime.strftime(datetime_object, "%Y-%m-%d")

                if start_dt <= timestamps and timestamps <= end_dt:
                    if timestamps not in time_list:
                        time_list[timestamps]=1
                    else:
                        time_list[timestamps]+=1

                    return json.dumps(time_list)

    start_date = datetime.strptime(str('2017-4-7'), '%Y-%m-%d')
    start_dt = datetime.strftime(start_date, "%Y-%m-%d")
    end_date = datetime.strptime(str('2017-5-4'), '%Y-%m-%d')
    end_dt = datetime.strftime(end_date, "%Y-%m-%d")        

    db = DB("host","user_db","pass_db","db_name")
    db.time_statistic(start_date, end_date)
问题:这是我第一次使用API和Flask。有人能帮我解决这个问题吗。如有任何提示,我们将不胜感激。多谢各位


我得到了一个空的列表,结果{}

你所做的事情有很多地方不对劲

1.>
def get(self,DB)
为什么
self
?此函数不属于类。它不是一个实例函数。self是调用实例方法时类实例的引用。这不仅是不需要的,而且是显而易见的错误

2.>如果您稍微研究一下flask的路由声明,您将看到应该如何使用参数声明路由。这是最新的。本质上你应该这样做

@app.route("/path/<variable>")
def route_func(variable):
    return variable
@app.route(“/path/”)
def route_func(变量):
返回变量
3.>最后,我想再提一件事,请不要调用常规python文件
test_uuz.py
,除非您计划将其用作单元测试文件。这很令人困惑


哦,您已经从模块中导入了DB,无需将其作为参数传递给函数。无论如何,它应该在里面是可用的。

在你的代码中有很多错误(从“无用和不清楚”到“完全错误”)


wrt/the
TypeError
:正如错误消息所说,您的
get()
函数需要两个参数(
self
DB
),它们不会通过Flask传递,实际上无论如何都不会在函数中使用。删除这两个参数,您就可以消除此错误-只需发现您现在在
get()
函数的第一行有一个
NameError
(显然,因为您没有导入
time\u statistic
,也没有定义
start\u date
end\u date
)。

“此方法不属于类”=>实际上这是一个函数,不是一个方法。“self是方法所属类的引用”=>nope,它是对方法所调用实例的引用。是的,谢谢您的评论。我没有检查清楚。但我在我的问题中做了一些更改,结果得到了空列表。你能帮我看看有什么问题吗?谢谢,我明白了!!谢谢你的指导,这是真的。现在我做了一些更改,没有错误,但给我一个空列表。也许我又错过了一部分。无论如何,谢谢你的评论,我明白了!!谢谢你的指导
@app.route("/path/<variable>")
def route_func(variable):
    return variable