20190329我想使用Django的ORM,即使用model,应该怎么做?在Django中使用多数据库,应该怎么做?
- 我bing了一下,得到这么一个链接,https://stackoverflow.com/questions/45595750/use-django-orm-outside-of-django
我实际操作时没有完全按照高赞作者的方式,我是把操作写在了文中SetupDjangoORM.py
的里面
我没能完全理解Django的运作方式,所以迟迟不能成功,我就想,应该参照Django web工程的目录去建我脚本的目录结构,但是还是不能奏效
我遇到的问题, 把import model
的操作 放在了dango.setup
前面,导致错误:
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
并不是因为我没有写BASE_DIR = os.path.dirname(os.path.abspath(__file__))
,(其实高赞作者也没有写)我后来测试了下,即使不写它,也是可以成功的。重要的是应该理解这句代码在这个工程中的作用,此时就应该看,在Django web项目中,它是位于哪个文件,位于哪个文件夹下的,当然我现在理解了。
from django.conf import settings
# BASE_DIR = os.path.dirname(os.path.abspath(__file__))
settings.configure(DATABASES={'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'user','USER': 'root','PASSWORD': '******','HOST': 'winip.com','PORT': '3306'},'us': {'ENGINE': 'django.db.backends.mysql','NAME': 'user_us','USER': 'root','PASSWORD': '******','HOST': 'winip.com','PORT': '3306'}},TIME_ZONE='Asia/Chongqing',INSTALLED_APPS=['mysite']
)
django.setup()
if __name__ == '__main__':print('Hello World!')
- 还有,你得在工程目录下的
settings.py
或者如上面SF回答的settings.configure()
中指定INSTALLED_APP
,否则,你必须在定义model时,在model中定义app_label
,这应该被定义在Meta类中:https://docs.djangoproject.com/en/2.1/ref/models/options/
python from django.conf import settings settings.configure()
- 或者使用另一个python的ORM框架:sqlalchemy https://stackoverflow.com/questions/49015994/django-model-outside-of-django
- 在Django中使用多个数据库,因为我的小系统涉及多个区域,但是数据库表结构是一致的,我想把不同区域分到不同的数据库而不是使用region是一个好办法,那么如何使用多个数据库呢?当你看到Django项目的
settings.py
中的DATABASE
是一个字典,而且我们常写的都是default
就应该有些想法.https://docs.djangoproject.com/en/2.1/topics/db/multi-db/
使用using来指定数据库,当然你得先在DATABASES
中定义数据库other
和first
Author.objects.using('other').all()p.save(using='first')
- 最后,我还有一个愚蠢的想法:
category_name = models.CharField(max_length=128)custom_category_name = models.CharField(max_length=128, default=category_name)
- 最后的最后,我找到了官方文档:https://docs.djangoproject.com/en/2.1/topics/settings/#calling-django-setup-is-required-for-standalone-django-usage
20190329我想使用Django的ORM,即使用model,应该怎么做?在Django中使用多数据库,应该怎么做?相关推荐
- 西游之路——python全栈——Django之ORM操作
Django之ORM操作 前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计 ...
- django mysql orm教程_带你了解Django ORM操作(基础篇)
前言 在日常开发中,需要大量对数据库进行增删改查操作. 如果头铁的话,使用原生SQL是最好的,毕竟性能又高,又灵活. 但是通常情况下,我们不是太需要那么苛刻的性能,也没有那么多刁钻的需求用原生SQL ...
- Django 之ORM操作
1.什么是ORM? 全称关系对象映射Object Relational Mapping(简称ORM),是通过描述面向对象与数据库之间的对应的元数据,将对象持久化的更新到数据库中. 有了ORM,就不需要 ...
- Django的ORM映射机制与数据库实战
一.ORM(Object Relational Mapping) 1.ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存 ...
- Django之ORM操作
一些说明: 表myapp_person的名称是自动生成的,如果你要自定义表名,需要在model的Meta类中指定 db_table 参数,强烈建议使用小写表名,特别是使用MySQL作为后端数据库时. ...
- Django之orm查询
ORM相关 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的 ...
- django -- 实现ORM登录
前戏 上篇文章写了一个简单的登录页面,那我们可不可以实现一个简单的登录功能呢?如果登录成功,给返回一个页面,失败给出错误的提示呢? 在之前学HTML的时候,我们知道,网页在往服务器提交数据的时候,都是 ...
- Django之ORM
ORM介绍 ORM概念 ORM就是对象关系映射(Object Relational Mapping)的缩写,顾名思义就是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是 ...
- django orm插入一条_如何通过django的ORM远程发布文章?
利用django的ORM可以方便的给数据库插入文章 但是假如我django放在阿里云,那我想在本地写个插件,每天很方便的插入一些数据,最好是通过ORM的,因为管理起来比较方便,会涉及到多个站,可能会有 ...
- django orm_Django ORM简介
django orm 您可能听说过Django ,它是Python Web框架,用于"有期限的完美主义者". 就是那个可爱的小马 . Django最强大的功能之一是其对象关系映射器 ...
最新文章
- 负载均衡算法-响应速度均衡
- 实现断网收银_便利店收银系统,可以实现简单又好用!
- Linux网络常用工具分类介绍
- Selenium3自动化测试——19.读取数据文件
- java的知识点30——设计模式
- xcodebuild构建时报错unknown error -1=ffffffffffffffff Command /bin/sh failed with exit code 1
- POJ 1724 ROADS(bfs最短路)
- python语言-python语言的有何特点?
- python socket客户端_python 使用socket模拟tcp客户端和tcp服务器端
- 携程工作感言(一)(6.30)
- android qq侧滑,Android实现QQ的侧滑置顶、删除
- Pulsar官方文档翻译-概念和架构-多租户(Multi Tenancy)
- 视频文件太大?使用FFmpeg来无损压缩它
- NYOJ371-机器人II
- 零基础学Python6
- 适配器模式设计插头标准
- 185电缆的接法图解_铜芯电线拧接法和捆绑法图解
- 计算机的配置鼠标,鼠标设置,详细教您鼠标设置在电脑的什么位置
- 大数据数据科学家常用面试题_想要成为数据科学家,解决数据科学面试的简单指南...
- 伟大的牛逼之前都是傻逼式的坚持