我已经在博客目录中添加了一个“templates”文件夹,但我无法让 Django 数据库 URL 识别它。我想我需要将我的网址添加到 settings.py 文件中,但我不知道该怎么做。
当我尝试运行服务器时,出现此错误:
Traceback (most recent call last):
File "/workspace/django-blog/manage.py", line 22, in <module>
main()
File "/workspace/django-blog/manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/workspace/.pyenv_mirror/user/current/lib/python3.12/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
utility.execute()
File "/workspace/.pyenv_mirror/user/current/lib/python3.12/site-packages/django/core/management/__init__.py", line 363, in execute
settings.INSTALLED_APPS
File "/workspace/.pyenv_mirror/user/current/lib/python3.12/site-packages/django/conf/__init__.py", line 82, in __getattr__
self._setup(name)
File "/workspace/.pyenv_mirror/user/current/lib/python3.12/site-packages/django/conf/__init__.py", line 69, in _setup
self._wrapped = Settings(settings_module)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspace/.pyenv_mirror/user/current/lib/python3.12/site-packages/django/conf/__init__.py", line 170, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/gitpod/.pyenv/versions/3.12.1/lib/python3.12/importlib/__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 994, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "/workspace/django-blog/codestar/settings.py", line 91, in <module>
'default': dj_database_url.parse(os.environ.get("DATABASE_URL"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/workspace/.pyenv_mirror/user/current/lib/python3.12/site-packages/dj_database_url/__init__.py", line 126, in parse
raise ValueError(
ValueError: No support for 'b'''. We support: cockroach, mssql, mssqlms, mysql, mysql-connector, mysql2, mysqlgis, oracle, oraclegis, pgsql, postgis, postgres, postgresql, redshift, spatialite, sqlite, timescale, timescalegis
我无法理解这个问题。
在我添加模板文件夹之前,服务器运行得完全正常。该文件夹包含一个 html 文件,其中包含教程提供的博客文章模板,这也表明当我添加时:
from django.shortcuts import render
from django.views import generic
from .models import Post
# Create your views here.
class PostList(generic.ListView):
queryset = Post.objects.all()
template_name = "post_list.html"
对于views.py 文件,服务器应该显示该帖子,但这就是我在终端中收到错误的时候。
我尝试将模板/目录添加到设置中的数据库中,但我不知道它的正确格式。我什至问过 ChatGPT,但即使这样似乎也被难住了,可能是因为我不知道我要问什么。
从您提供的错误陈述来看,问题出在 .env 文件中的
DATABASE_URL
。为了让它发挥作用,
sudo systemctl status postgresql
(linux)。确保创建一个数据库。psql
CREATE DATABASE yourdatabase;
CREATE USER youruser WITH PASSWORD 'yourpassword';
ALTER DATABASE yourdatabase OWNER TO youruser;
psycopg2==2.9.9 , psycopg2-binary==2.9.9
使用 settings.py 文件交叉检查 postgress 配置DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': DATABASE_NAME,
'USER': DATABASE_USER,
'PASSWORD': DATABASE_PASS,
'HOST': DATABASE_URL, //'localhost'
'PORT': DATABASE_PORT, // default port '5432'
}
}
.env 文件
DATABASE_PORT= '5432'
DATABASE_URL= 'localhost'
DATABASE_NAME = 'yourdatabase'
DATABASE_USER = 'youruser'
DATABASE_PASS = 'yourpassword' ```
It should make connection with database .