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))
....