<p>为了到2020年的记录,我设法在{<cd3>}中设置了一个工作{<cd1>}设置{<cd2>}:</p>
<h3>development.py(settings.py)</h3>
<pre><code>INSTALLED_APPS += [
"django_extensions",
]
SHELL_PLUS = "ipython"
SHELL_PLUS_PRINT_SQL = True
NOTEBOOK_ARGUMENTS = [
" ip",
"0.0.0.0",
" port",
"8888",
" allow-root",
" no-browser",
]
IPYTHON_ARGUMENTS = [
" ext",
"django_extensions.management.notebook_extension",
" debug",
]
IPYTHON_KERNEL_DISPLAY_NAME = "Django Shell-Plus"
SHELL_PLUS_POST_IMPORTS = [ # extra things to import in notebook
("module1.submodule", ("func1", "func2", "class1", "etc")),
("module2.submodule", ("func1", "func2", "class1", "etc"))
]
os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true" # only use in development
</code></pre>
<h3>requirements.txt</h3>
<pre><code>django-extensions
jupyter
notebook
Werkzeug # needed for runserver_plus
...
</code></pre>
<h3>docker compose.yml</h3>
<pre><code>version: "3"
services:
db:
image: postgres:13
environment:
- POSTGRES_HOST_AUTH_METHOD=trust
restart: always
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data/
web:
build: .
environment:
- DJANGO_SETTINGS_MODULE=settings.development
command:
- scripts/startup.sh
volumes:
- ...
ports:
- "8000:8000" # webserver
- "8888:8888" # ipython notebook
depends_on:
- db
volumes:
postgres_data:
</code></pre>
<p>从主机终端运行以下命令:</p>
<pre><code>docker-compose exec web python manage.py shell_plus notebook
</code></pre>
<p>最后在主机的web浏览器中导航到<code>http://localhost:8888/?token=<xxxx></code></p>