Django rest framework api与现有的mysql数据库



如何创建一个连接到现有MySQL表的Django REST框架API,而不是通过modela.py创建它们。我的models.py显示如下内容:

class Author(models.Model):
    first_name = models.CharField(max_length=20)
    last_name = models.CharField(max_length=20)
    def __str__(self):
        return f'{self.first_name} {self.last_name}'

取而代之的是,我需要直接从 MySQL 中的现有表中获取数据。

为此,

您需要使用元字符字段定义与表名相同的类名

比如 RandomTable(id INT(10),name varchar(10))您现有的 mysql 表,那么它的models.py将是

class AppnameRandomTable(models.Model)
    id = models.CharField(db_column="id") #name of column of existing db

在其中,您需要在元部分中写入现有表名的字段

class Meta:
    db_table = "RandomTable" #your existing mysql table name 

节省时间的黑客只需在 models.py 中创建一个类,并在终端运行"Python manage.py InspectDB"时,您将自动从那里获取所有列名。

你可以从那里复制和粘贴名称,因为为了读取和写入列,你需要在你的类中定义它们的变量,即使表是现有的mysql表。

python manage.py inspectdb > models.py

如果运行该命令,它将在项目的根目录中创建一个 models.py。完成此操作后,您可以将其直接移动到项目中,也可以创建一个模型文件夹,并从那里将其分解为关注区域。您可能必须将related_name = 'foo'添加到与其他模型有关系的许多字段中。这可能很耗时,但它有效。

相关内容

  • 没有找到相关文章

最新更新