是否可以编写Django应用程序,例如内部/个人使用现有数据库,而不必在启动项目时通常安装DjangOS自己的表的“开销”?我想通过模型使用现有的表,但没有其他所有在正常网页上确实有用的东西。
原因是要建立小型的个人检查/管理工具,而不是侵入遗留数据库。

最佳答案

定义了数据库表的最引人注目的应用程序是django.contrib.auth,它在数据库中实现自己的auth后端。如果你的应用程序是防火墙,并且你信任所有有权访问它的人,那么你可以一起跳过auth。否则,您希望使用现有的基础设施创建自己的Auth机制,您最可能希望使用另一个后端。如果您的web服务器设置了REMOTE_USER,则可以使用another builtin backend,并且应该关闭并运行。否则,您必须实现自己的来引用其他身份验证源。
从那里你只需要建立你的模型来使用现有的数据库表,而不是让他们自己做。例如,你可以很好地控制

class MyModel(django.db.Model):
    MyTextField = django.db.TextField(db_column="mytextfield", primary_key=True)

    class Meta:
        db_table = "my_table"

这样,您可以指定每个模型的每个字段所代表的确切表和列。请注意,您可以将主键设置为整数以外的类型。django的orm的一个限制是,每个模型必须只有一个主键。因此,如果您的表没有主键,要么添加一个,要么您必须在没有django的orm帮助的情况下进行处理。
此外,由于您正在绑定到现有的数据集,可能与其他应用程序相关,所以您不可能希望使用./manage.py syncdb,因为它可能会做一些不可处理的事情。

关于python - 没有其他表格的Django?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1313362/

10-12 13:09