我需要从Django shell执行Python脚本.我试过了:
./manage.py shell << my_script.py
Run Code Online (Sandbox Code Playgroud)
但它没有用.它只是在等我写点什么.
这是我的Windows系统上的追溯.
Traceback (most recent call last):
File "D:\AMD\workspace\steelrumors\manage.py", line 9, in <module>
django.setup()
File "D:\AMD\Django\django-django-4c85a0d\django\__init__.py", line 21, in setup
apps.populate(settings.INSTALLED_APPS)
File "D:\AMD\Django\django-django-4c85a0d\django\apps\registry.py", line 108, in populate
app_config.import_models(all_models)
File "D:\AMD\Django\django-django-4c85a0d\django\apps\config.py", line 197, in import_models
self.models_module = import_module(models_module_name)
File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module
__import__(name)
File "C:\Python27\lib\site-packages\registration\models.py", line 15, in <module>
User = get_user_model()
File "D:\AMD\Django\django-django-4c85a0d\django\contrib\auth\__init__.py", line 135, in get_user_model
return django_apps.get_model(settings.AUTH_USER_MODEL)
File "D:\AMD\Django\django-django-4c85a0d\django\apps\registry.py", line 199, in get_model
self.check_models_ready()
File "D:\AMD\Django\django-django-4c85a0d\django\apps\registry.py", line 131, in check_models_ready
raise AppRegistryNotReady("Models aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Models …Run Code Online (Sandbox Code Playgroud) 我一直在使用WSGI开发部署在Apache服务器上的Django Web应用程序,一切都进展顺利.今天,我对我的应用程序进行了一些小的更改,admin.py试图自定义内置的Django Admin界面,并且最初产生了语法错误(一个未闭合的括号).这意味着当我触摸wsgi.py并加载代码时(我在我的虚拟主机上以守护进程模式运行WSGI),我的网站被替换为内部服务器错误,因为WSGI在遇到语法错误时停止了.
所以我修复了语法错误,检查了我没有更多manage.py check,并触及wsgi.py重新部署.但我的网站仍然显示内部服务器错误!检查Apache日志,这是我看到的:
[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Create interpreter 'quotes.cs.cornell.edu|'.
[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Adding '/extra/www/html/quotes/quotes_django' to path.
[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Adding '/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/' to path.
[Sun Nov 23 13:52:46 2014] [info] [client 128.84.33.19] mod_wsgi (pid=19093, process='quotes.cs.cornell.edu',
application='quotes.cs.cornell.edu|'): Loading WSGI script '/extra/www/html/quotes/quotes_django/quotes_django/
wsgi.py'.
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] mod_wsgi (pid=19093): Target WSGI script '/extra/www/html/ …Run Code Online (Sandbox Code Playgroud) 我可以移动到python项目目录(比如c:\ www\myproject),然后发出
python manage.py shell
Run Code Online (Sandbox Code Playgroud)
然后我可以使用django项目中的所有模块,从shell命令中说出以下命令:
import settings
from django.template import Template, Context
t=Template("My name is {myname}.")
c=Context({"myname":"John"})
f = open('write_test.txt', 'w')
f.write(t.render(c))
f.close
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试将所有命令收集到python脚本中时,说"mytest.py",我无法执行脚本.我必须错过重要的事情.
我发出了python mytest.py
然后我得到Import error: could not import settings它是在sys路径上吗?"
我在settings.py所在的项目目录中......
有人可以帮帮我吗?
谢谢.
我有两个访问同一个数据库的应用程序.第一个客户端通过TCP连接并使用SQLAlchemy写入数据库.第二个是使用Django的更典型的webapp.两者都有读/写要求.
我想统一数据库访问层,但只选择SQLAlchemy或只是Django是没有吸引力的,因为:
在同一个数据库中混合使用这两个ORM有什么问题吗?
在哪个系统(Django,SQLA)中我应该创建模型,使用某种内省如Django inspectdb?
我想运行以下脚本来预先填充我的模型等名称...但是我得到一个错误.脚本是
first_names = first_names.split('\n')
last_names = last_names.split('\n')
phones=[str(i) for i in range(2310000000,2310999999, 1563)]
emails = ['test%s@test.com' %i for i in range(0,144)]
import os
os.environ['DJANGO_SETTINGS_MODULE']='project.settings'
from customer.models import Customer
from django.contrib.auth.models import User
users = User.objects.all()
if __name__ == "__main__":
for i in range(10):
customer = Customer(first_name=choice(first_names), last_name=choice(last_names),
telephone=choice(phones),email=choice(emails), creator=choice(users))
customer.save()
Run Code Online (Sandbox Code Playgroud)
而错误是
Traceback (most recent call last):
File "populatedb.py", line 431, in <module>
from customer.models import Customer
ImportError: No module named customer.models
Run Code Online (Sandbox Code Playgroud)
dir_tree是(如果我可以"正确地"绘制)
-project_dir
|
|--customer
|--|
|--models.py(etc...)
|
|--project(the settings …Run Code Online (Sandbox Code Playgroud) 我有以下脚本,它的意思是一个独立的Django脚本,所以我可以从命令行运行python my_script.py.它曾经与Django 1.8一起使用,在我升级到Django 1.11之后,我收到以下错误:
Traceback (most recent call last):
File "app.py", line 8, in <module>
django.setup()
File "C:\python27\lib\site-packages\django-1.11.5-py2.7.egg\django\__init__.py", line 22, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "C:\python27\lib\site-packages\django-1.11.5-py2.7.egg\django\conf\__init__.py", line 56, in __getattr__
self._setup(name)
File "C:\python27\lib\site-packages\django-1.11.5-py2.7.egg\django\conf\__init__.py", line 41, in _setup
self._wrapped = Settings(settings_module)
File "C:\python27\lib\site-packages\django-1.11.5-py2.7.egg\django\conf\__init__.py", line 110, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "C:\python27\lib\importlib\__init__.py", line 37, in import_module
__import__(name)
ImportError: Import by filename is not supported.
Run Code Online (Sandbox Code Playgroud)
这是我的python脚本
# standalone django setup
import os, sys, logging, django
prj_dir = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
logging.basicConfig(level=logging.INFO)
logging.info("PRJ_DIR: …Run Code Online (Sandbox Code Playgroud) django ×7
python ×6
apache ×1
django-shell ×1
django-wsgi ×1
mod-wsgi ×1
orm ×1
postgresql ×1
sqlalchemy ×1