有人可以帮忙吗?我正在按照教程使用 Django 和 PostgreSQL 制作一个基本的博客网站,但无法添加数据库

问题描述 投票:0回答:1

我已经在博客目录中添加了一个“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,但即使这样似乎也被难住了,可能是因为我不知道我要问什么。

django django-templates django-settings
1个回答
0
投票

从您提供的错误陈述来看,问题出在 .env 文件中的

DATABASE_URL
。为了让它发挥作用,

  1. 检查 postgress 并运行
    sudo systemctl status postgresql 
    (linux)。确保创建一个数据库。
psql
CREATE DATABASE yourdatabase;
CREATE USER youruser WITH PASSWORD 'yourpassword';
ALTER DATABASE yourdatabase OWNER TO youruser;

  1. 确保安装 postgress 的依赖项
    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 .
© www.soinside.com 2019 - 2024. All rights reserved.