Python 当作为全局变量导入时,format方法不会为字符串赋值

Python 当作为全局变量导入时,format方法不会为字符串赋值,python,django,python-3.x,Python,Django,Python 3.x,我在一个名为querys.py的文件中定义了一些变量,并将它们导入另一个名为views.py的文件中。问题是python格式没有将每个变量的值分配给相应的占位符。考虑下面的代码行: queries.py main_where_query = ''' where users.deleted_account is null and length(users.phone_number) > 2 and length(users.phone_number) <

我在一个名为
querys.py
的文件中定义了一些变量,并将它们导入另一个名为
views.py
的文件中。问题是python格式没有将每个变量的值分配给相应的占位符。考虑下面的代码行:

queries.py

main_where_query = ''' where users.deleted_account is null
        and length(users.phone_number) > 2
        and length(users.phone_number) < 20
        and users.phone_number not like '+98888888%'
    '''

messages_where_query = """{0} 
                            and messages.date>'{1}' 
                            and messages.date<'{2}'
                        """
输出为:

select count(messages.message_id) from messages
                join users on users.id = messages.sender
                {0} 
                            and messages.date>'{1}' 
                            and messages.date<'{2}'

                and messages.media_type = 0
从消息中选择计数(messages.message\u id)
在users.id=messages.sender上加入用户
{0} 
和消息。日期>'{1}'

和messages.date我认为出现问题的原因是,您正在设置
消息的格式,而
格式
不起作用。格式化后,您需要将
messages\u where\u query
设置为自身。此外,您不需要使用
global
关键字;您已经从另一个文件导入了它们,因此它们本身不是全局变量

您的
views.py
脚本应该如下所示:

from .queries import *
def get_activity(request):
    global main_where_query
    global messages_where_query
    messages_where_query = \
        messages_where_query.format(main_where_query, str(start_date), str(end_date))
    ....
from .queries import *
def get_activity(request):
    global main_where_query
    global messages_where_query
    messages_where_query = \
        messages_where_query.format(main_where_query, str(start_date), str(end_date))
    ....