我的任务是开发一个可以从命令行运行的脚本,并使用url
作为参数(以便模拟浏览器请求)。在应用中,相应的缓存机制已成功构建。为了使它运行起来,我使用RequestFactory
来模仿请求。我的脚本是:
class FetchCacheTest(TestCase):
def setUp(self):
self.factory = RequestFactory()
self.user = User.objects.create_user(
username='thatsme', email='thatsme@hotmail.com', password='secret')
def cache_details(self, url):
request = self.factory.get(url)
print("get_request: {0}".format(request))
request.user = self.user
print("request.user: {0}".format(request.user))
request.user = AnonymousUser()
response = MyView.as_view()(request)
response.render()
self.assertEqual(response.status_code, 200)
if __name__ == '__main__':
#######
#import django
#os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myapp.settings')
#django.setup()
##########################
script = sys.argv[0]
url = sys.argv[1]
print ("Script: {0}\nURL: {1}".format(script, url))
fct = FetchCacheTest
t = fct.cache_details(url)
在终端机的一个标签中,我执行python manage.py runserver
在另一个标签中,python fetch_myapp.py https://report/failed
我收到的回溯:
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
我已经在if __name__ == '__main__'
下方尝试了注释掉的代码,但无济于事。
任何想法如何规避此消息?一般而言,有关收集缓存sta的任何其他提示都将受到赞赏。