nav*_*yad 3 windows django environment-variables
这个查询有我的帖子,但大部分都是针对linux的.他们都没有明显的窗户
在我的应用程序中,我正在设置数据库(sqlite3,Django中的默认值).编辑我的应用程序的setup.py文件后(mysite)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'D:/Django_Code/sqlite.db', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
Run Code Online (Sandbox Code Playgroud)
在发现我必须设置DJANGO_SETTINGS_MODULE环境以便Django可以了解数据库设置之后.所以我把它设置得像
DJANGO_SETTINGS_MODULE = "D:\Django_Code\mysite\mysite\settings.py"
Run Code Online (Sandbox Code Playgroud)
我发出时交叉检查数据库设置
>>> from django.db import connection
>>> cursor = connection.cursor()
Run Code Online (Sandbox Code Playgroud)
它说DJANGO_SETTINGS_MODULE环境变量是Undefined.
需要帮助才能正确设置DJANGO_SETTINGS_MODULE.
DJANGO_SETTINGS_MODULE在Windows中设置的最简单方法是使用set命令提示符中的命令.您还应该能够通过系统属性进行设置,但是您需要关闭并重新打开命令提示符才能使更改生效.
您也可以查询DJANGO_SETTINGS_MODULE使用该set命令的当前值:
C:\temp\testproject> set DJANGO_SETTINGS_MODULE
Run Code Online (Sandbox Code Playgroud)
此外,您需要将其设置为python模块名称,而不是文件名(将其设置为文件名会给您一个类似于" 无法导入设置'C:\ temp\testproject\settings.py'的错误(是吗?在sys.path?):不支持按文件名导入. ")
例如,
C:\temp\testproject> set DJANGO_SETTINGS_MODULE=testproject.settings
Run Code Online (Sandbox Code Playgroud)
然后你可以运行python并导入模块.
>>> import sys
>>> sys.path += ['C:\\temp']
>>> from django.db import connection
>>> connection.cursor()
<django.db.backends.util.CursorDebugWrapper object at 0x02C7F0B0>
Run Code Online (Sandbox Code Playgroud)
请注意,我们还明确地添加了包含django项目(testproject在本例中)sys.path的目录,这实际上是Python查找模块的目录列表.这是必要的,因为Python将设置文件导入为python模块,而不是文件(如前所述).
如果您希望交互式shell与Django对象一起使用,则可以使用shell管理命令.在Django项目目录中,运行以下命令:
manage.py shell
Run Code Online (Sandbox Code Playgroud)
既然你在窗户上,你可能不得不这样做
python manage.py shell
Run Code Online (Sandbox Code Playgroud)
相反,因为我个人有python脚本没有接收命令行参数的问题.
C:\temp\testproject> python manage.py shell
In [1]: from django.db import connection
In [2]: connection.cursor()
Out[2]: <django.db.backends.util.CursorDebugWrapper at 0x33a0bd0>
Run Code Online (Sandbox Code Playgroud)
(注意我已经安装了IPython并且Django很聪明并使用它;如果你没有安装IPython,你的shell看起来会略有不同.)
如果要使用Django运行脚本,最简单的方法是编写自定义管理命令,然后可以使用参数运行该命令manage.py.
| 归档时间: |
|
| 查看次数: |
7237 次 |
| 最近记录: |