[英]Django - Access pre-existing data in mySQL database
我想做的是:我有一個csv文件,其中包含一些公共傳輸數據。 我想在我的Django應用程序中使用它,所以我將csv導入了mySQL數據庫。 然后,我為該表創建了一個Django模型(我還將我的模型與python manage.py inspectdb
的輸出進行python manage.py inspectdb
,以確保它是正確的。然后我運行了python manage.py makemigrations
並最終運行了python manage.py migrate
。我了解(而且我是Django的新手,很抱歉,如果我錯過了明顯的內容),那么Django現在應該可以訪問數據庫中的表。
雖然沒有用。 我試過使用Django shell( python manage.py shell
)並使用Stops.objects.all()
返回表內容,后者返回一個空集。 同樣,我能夠使用Stops.objects.all()
的值創建一個HttpResponse,盡管它沒有給出錯誤,但沒有返回任何數據。 我已經確認我正在settings.py中訪問正確的數據庫,並且數據實際上是通過mysql終端存儲的。
我一直在嘗試修復此問題,但尚未找到任何解決方案。 我認為我可能錯過了一些小步驟,希望這里有人會知道。 提前致謝!
如果我是你,我將驗證我的表是否按預期命名。
使用MySQL, 類似
USE mydb
SHOW TABLES;
我假設您的django表將使用默認的命名方案f“ {app_label} _ {model}”,因此,如果您的應用名為“ my_app”,而模型為“ stops”,則可以預期django將管理一個名為“ my_app_stops”
您可以使用django shell進行驗證
$ ./manage.py shell
from my_app.models import Stops
Stops._meta.db_table
我希望這有幫助。 沒有更多信息,我只能向您展示如何調查最明顯的缺陷。
編輯如果確定確實存在差異,則有兩個選擇:(1)重命名表以匹配Django,或(2)強制django使用Meta類查看現有表
from django.db import models
class Stops(models.Model):
class Meta:
db_table = 'some_table_name'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.