簡體   English   中英

Django-訪問mySQL數據庫中的預先存在的數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM