只需遵循 Django 教程并決定我將使用 Postgresql 而不是 SQLlite 來完成它們。
我將以下內容添加到我的設定檔案中,一切正常:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'django_tutorial',
'USER': 'django_admin',
'PASSWORD': 'password123',
'HOST': '127.0.0.1',
'PORT': '5432'
}
}
django_tutorial=> \dt
List of relations
Schema | Name | Type | Owner
-------- ---------------------------- ------- --------------
public | accounts | table | django_admin
public | auth_group | table | django_admin
public | auth_group_permissions | table | django_admin
public | auth_permission | table | django_admin
public | auth_user | table | django_admin
public | auth_user_groups | table | django_admin
public | auth_user_user_permissions | table | django_admin
public | django_admin_log | table | django_admin
public | django_content_type | table | django_admin
public | django_migrations | table | django_admin
public | django_session | table | django_admin
(11 rows)
我的問題是 - Django 如何知道 postgresql 的位置?本來我以為名字應該是 C:\ 路徑,但它只需要 DB 名稱?
例如,檔案對 sqllite 這么說:
要使用的資料庫的名稱。對于 SQLite,它是資料庫檔案的完整路徑。指定路徑時,請始終使用正斜杠,即使在 Windows 上也是如此(例如 C:/homes/user/mysite/sqlite3.db)。
uj5u.com熱心網友回復:
Django 如何知道 postgresql 的位置?
它沒有,這不是 Django 負責的。您運行 PostgreSQL 資料庫服務器。該服務器偵聽一個埠并知道它存盤包含資料的檔案的位置。Django 將打開與該資料庫服務器的連接,并通過查詢與資料庫服務器通信。因此,資料庫是一個獨立的應用程式。
對于 SQLite,它是資料庫檔案的完整路徑。
對于 SQLite,情況有所不同,在這種情況下,有一個軟體包可以操作檔案,因此不涉及資料庫服務器。這不是一個獨立的應用程式,它是一個操作檔案的庫。
對于資料庫服務器,您通常無權訪問底層檔案。例如,服務器可能在不同的機器上運行。這可能更安全,因為以某種方式設法訪問 Web 服務器的黑客可能可以通過獲取密碼訪問檔案和資料庫,但不能訪問在同一資料庫服務器上運行的其他資料庫。
uj5u.com熱心網友回復:
Django 使用套接字(主機:埠)連接到您的資料庫服務器,而不是檔案系統(c:\path\to\your\database\server),這樣您就可以在不同的地方運行 django 和資料庫服務器。這是最常見的連接方法。redis服務器,mongodb服務器等。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/492048.html
下一篇:獲取不同json結構的物體
