相关疑难解决方法(0)

如何从Django shell执行Python脚本?

我需要从Django shell执行Python脚本.我试过了:

./manage.py shell << my_script.py
Run Code Online (Sandbox Code Playgroud)

但它没有用.它只是在等我写点什么.

python django django-shell

224
推荐指数
12
解决办法
19万
查看次数

Django独立脚本

我试图从另一个python脚本访问我的Django(v1.10)应用程序数据库,并遇到一些麻烦.

这是我的文件和文件夹结构:

store
 store
   __init.py__
   settings.py
   urls.py
   wsgi.py
 store_app
   __init.py__
   admin.py
   apps.py
   models.py
   ...
 db.sqlite3
 manage.py

other_script.py
Run Code Online (Sandbox Code Playgroud)

根据Django的文档,other_script.py看起来像这样:

import django
from django.conf import settings

settings.configure(DEBUG=True)
django.setup()

from store.store_app.models import MyModel
Run Code Online (Sandbox Code Playgroud)

但它会生成运行时错误:

RunTimeError: Model class store.store_app.models.MyModel doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
Run Code Online (Sandbox Code Playgroud)

我应该注意到我的INSTALLED_APPS列表包含store_app最后一个元素.

如果相反,我尝试传递这样的配置:

import django
from django.conf import settings
from store.store_app.apps import StoreAppConfig

settings.configure(StoreAppConfig, DEBUG=True)
django.setup()

from store.store_app.models import MyModel
Run Code Online (Sandbox Code Playgroud)

我明白了:

AttributeError: type object 'StoreAppConfig has …
Run Code Online (Sandbox Code Playgroud)

python django

19
推荐指数
2
解决办法
1万
查看次数

使用`settings/dev.py`而不是`settings.py`运行在Django中执行模型查询的独立脚本

注意settings/dev.py代替一个settings.py文件和以下Django(1.4.3)项目script.py中的my_appin:

.
??? my_project
?   ??? my_app
?   ?   ??? __init__.py
?   ?   ??? models.py
?   ?   ??? tests.py
?   ?   ??? views.py
?   ?   ??? script.py
?   ??? __init__.py
?   ??? settings
?   ?   ??? dev.py
?   ?   ??? __init__.py
?   ?   ??? prod.py
?   ??? urls.py
?   ??? wsgi.py
??? manage.py
??? requirements.txt
Run Code Online (Sandbox Code Playgroud)

当我只有一个settings.py文件代替settings文件夹时,我能够运行以下脚本而没有任何错误:

script.py:

###################################################################
# set up for making it possible to …
Run Code Online (Sandbox Code Playgroud)

python django django-settings

5
推荐指数
1
解决办法
7837
查看次数

来自django.core.management.base导入NoArgsCommand,CommandError ImportError:无法导入名称'NoArgsCommand'

Traceback (most recent call last):
File "prototypes.py", line 39, in <module>
execute_from_command_line(sys.argv)
File "/home/leo/Desktop/learning_log/ll_env/lib/python3.5/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
utility.execute()
File "/home/leo/Desktop/learning_log/ll_env/lib/python3.5/site-packages/django/core/management/__init__.py", line 359, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/leo/Desktop/learning_log/ll_env/lib/python3.5/site-package/django/core/management/base.py", line 294, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/leo/Desktop/learning_log/ll_env/lib/python3.5/site-packages/django/core/management/base.py", line 345, in execute
output = self.handle(*args, **options)
File "/home/leo/Desktop/prototypes/sitebuilder/management/commands/build.py", line 42, in handle
call_command('compress',interactive=False,force=True)
File "/home/leo/Desktop/learning_log/ll_env/lib/python3.5/site-packages/django/core/management/__init__.py", line 113, in call_command
command = load_command_class(app_name, command_name)
File "/home/leo/Desktop/learning_log/ll_env/lib/python3.5/site-packages/django/core/management/__init__.py", line 40, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
return …
Run Code Online (Sandbox Code Playgroud)

python django

4
推荐指数
2
解决办法
2817
查看次数

标签 统计

django ×4

python ×4

django-settings ×1

django-shell ×1