Django中一个项目里怎么使用两个数据库

作者&投稿:释依 (若有异议请与网页底部的电邮联系)
~


在django项目中, 一个工程中存在多个APP应用很常见. 有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接。

1. 修改项目的 settings 配置

在settings.py中配置需要连接的多个数据库连接串





2. 设置数据库的路由规则方法

在settings.py中配置DATABASE_ROUTERS

1DATABASE_ROUTERS=[‘Prject.database_router.DatabaseAppsRouter‘]

Project: 建立的django项目名称(project_name)

database_router: 定义路由规则database_router.py文件名称, 这个文件名可以自己定义

DatabaseAppsRouter: 路由规则的类名称,这个类是在database_router.py文件中定义

3. 设置APP对应的数据库路由表

每个APP要连接哪个数据库,需要在做匹配设置,在settings.py文件中做如下配置:





以上的report,regs是项目中的 APP名,分别指定到 ora1, default的数据库。

为了使django自己的表也创建到你自己定义的数据库中,你可以指定 : admin, auth, contenttypes, sessions 到设定的数据库中,如果不指定则会自动创建到默认(default)的数据库中.

4. 创建数据库路由规则

在项目工程根路径下(与 settings.py 文件一级)创建database_router.py文件:



5.原生sql的使用:





6. Models创建样例

在各自的 APP 中创建数据表的models时,必须要指定表的 app_label 名字,如果不指定则会创建到default中配置的数据库名下,

如下:

在app01下创建models





在app02下创建models





7. 生成数据表

在使用django的 migrate 创建生成表的时候,需要加上 _database 参数,如果不加则将 未 指定 app_label 的 APP的models中的表创建到default指定的数据库中,如:

将app01下models中的表创建到db01的数据库”db_01”中

./ manage.py migrate--database=db01

将app02下models中的表创建到db02的数据库”db_02”中

./ manage.py migrate--database=db02

将app03下models中的表创建到default的数据库”sqlite3”中

./ manage.py migrate

以上创建完成后,其它所有的创建、查询、删除等操作就和普通一样操作就可以了,无需再使用类似

models.User.objects.using(dbname).all()

这样的方式来操作

Django中一个项目里怎么使用两个数据库
标签:DBNamerate数据库连接image生成report查询、删除ESS名称




Django中怎么使用django-celery完成异步任务
需要broker, 使用django自身便可以充当broker. (但在部署时, 我们最好使用更稳定和高效的broker, 例如Redis.)在settings.py中:import djcelery djcelery.setup_loader()BROKER_URL = 'django:\/\/'...INSTALLED_APPS = (...'djcelery','kombu.transport.django',...)第一二项是必须的, 第三项则...

Django项目配置到服务器上显示 Internal Server Error 的原因是什么...
5.**服务器配置错误:**例如,错误的Django或WSGI路径、错误的端口号等。6.**环境变量问题:**如果你使用了环境变量,并且它们没有被正确设置或者在服务器上找不到,这也可能会引发错误。为了找出具体的问题,你需要查看服务器日志(比如Apache或Nginx的日志)。Django本身也有一个日志系统,可以用来记录...

如何用django开发一个简易个人Blog-Python
标签管理模块:主要功能是管理员系统管理员登入后,浏览查看相册,删除相册等功能 文章、标签浏览模块:主要功能是游客进入系统后。可以浏览文章列表,可以按标签查看文章 评论系统模块, 游客可以发表查看别人的评论 安装与使用 项目采用Django框架进行开发, Django是一个用于快速web开发的优异方案(几乎没有之一...

django Field选项中null和blank的区别
null:If True, Django will store empty values as NULL in the database. Default is False.如果为True,空值将会被存储为NULL,默认为False。blank:If True, the field is allowed to be blank. Default is False.如果为True,字段允许为空,默认不允许。

django 模板如何判定变量在一个列表中?
没有python本身那么方便的语句 需要自己在循环里加判断,比如这样:{% for item in list %} {% ifequal item var %} ... do somthing ...{% endifequel %} {% endfor %} 不过我还是建议尽量在模板里少做一些事情,模板毕竟不是用来提供计算的,只是一个展示用的框架而已。

Django框架中path及re_path中name参数的使用和模板渲染(八)
name参数可以给一个匹配的url地址取名字,一般用于模板,也可以使用reverse进行页面重定向。1、为APP中的books里面的urls.py(给url取个名字)2、为APP中books里面的views.py(redirect是重定向,reverse是将url的name解析成url本身的函数)1、 name参数可以给这个url取一个合适的名字。通过给url取名字,...

如何正确使用 Django Admin
只有当其内容是系统生成, 用户无法修改的时, 才能使用allow_tags=True.4. 不在多用户编辑环境使用list_editable django admin为我们提供了在列表页修改model属性的功能, 这样方便管理员一次修改多个属性. 如果管理员只有一个人的话,那就没问题, 但在多用户环境中时, 却是会存在一个很严重的潜在问题....

怎样搭建Django服务器环境
3.在命令终端输入以下命令导入并检查django安装情况:python >>>import django >>>django.VERSION 4.创建一个Django工程 django-admin startproject cms678(工程名)这样在用户目录下就会产生一个cms678的工程文件夹。manage.py:可以在命令行下管理这个项目。__init__.py:将这个项目目录作为Python的...

用django搭建网站怎么设置主题。
1. 创建项目 运行下面命令就可以创建一个 django 项目,项目名称叫 mysite :django-admin.py startproject mysite 创建后的项目目录如下:mysite ├── manage.py └── mysite ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py 1 directory, 5 files 说明:__...

django项目若未设计数据库,那么配置文件中DATABASE可以为空吗?_百度...
在Django项目中,如果你没有设计数据库,那么你可以在配置文件中将DATABASES设置为空,这样Django会使用默认的SQLite数据库。你可以在settings.py文件中找到DATABASES设置。如果你没有设计数据库,可以将其设置为空,例如:```python DATABASES = {} ```或者你可以直接注释掉整个DATABASES设置,例如:```...

莱芜市19823144800: 如何在django中使用多个数据库 -
寿疤禾乐: 1.2之后, django支持在项目中使用多个DB. 那么到底如何使用呢?1. 修改 settings.py01DATABASES = {02 'default': {03 'NAME': 'app_data',04 'ENGINE': 'django.db.backends.postgresql_psycopg2',05 'USER': 'postgres_user',06 'PASSWORD': ...

莱芜市19823144800: django中怎么使用两个限定条件在mysql数据库中进行查询 -
寿疤禾乐: 可以使用逻辑关系运算符 例如:SELECT * FROM table_name WHERE (条件1 and 条件2) 查询两个条件都符合的结果, 或者 SELECT * FROM table_name WHERE (条件1 or 条件2) 查询符合两个条件中满足任一条件的结果.

莱芜市19823144800: 如何在 Django models 中使用多语言 的简单方法 -
寿疤禾乐: django model中使用多语言支持的快速方法, 该方法通过建立自定义的template tag 选取model中重复的语言field来达到多语言显示的目的.假设我们有这样一个models.py, 某一个model中包含多个重复的field, 每个重复的field都是用来保存其对...

莱芜市19823144800: Django中celery的worker,同时只能执行一个任务吗?同时 -
寿疤禾乐: 你可以考虑使用eventlet 库在worker中做异步的操作,这样就可以多个任务同时执行了.下面是一个使用的例子 import eventlet eventlet.monkey_patch() # must execute as early as possible...# everything is non-blocking now:import requests, amqp, memcache, paramiko, redis

莱芜市19823144800: 如何在网页中运行简单的python代码 -
寿疤禾乐: 如下的方法请参考: 1 、创建一个django项目使用django-admin.py startproject MyDjangoSite 参考这里 2、建立视图from django.http import HttpResponsedef hello(request): return HttpResponse("我的第一个简单的python django项目.") ...

莱芜市19823144800: Django中的Project和App的区别 -
寿疤禾乐: project是整个项目(网站)APP是指项目里的某个功能模块,比如user是一个APP

莱芜市19823144800: Django外键和多对多的用法 -
寿疤禾乐: <p>两种方法都行,参考代码见附件.</p> <p> </p> <p>ForeignKey的方法更弄易理解数据库的真实结构;ManyToMany的方法使用起来更方便.</p> <p>推荐使用第2种方法,这也是django所推荐的设计方式.</p> <p> </p> <p>希望对你有所帮助~</p>

莱芜市19823144800: 如何正确的使用和设置Database和Model -
寿疤禾乐: Model是django项目的基础, 如果一开始没有好好设计好, 那么在接下来的开发过程中就会遇到更多的问题. 然而, 大多数的开发人员都容易在缺少思考 的情况下随意的增加或修改model. 这样做的后果就是, 在接下来的开发过程中, 我们不得...

莱芜市19823144800: 怎么使用一个django的工程 -
寿疤禾乐: 首先app后台和语言,框架没有关系,适合不适合要看开发者对这个东西的熟悉程度. django作为python中一个比较完整的框架,包括一个完整项目开发所需的大部分功能,所以使用django可以快速完成项目,当然也包括app后台服务器代码.

莱芜市19823144800: 如何在django中使用多个数据库 -
寿疤禾乐: 比如,下面的代码将选择default数据库>>> # This will run on the 'default' database.>>> Author.objects.all()>>> # So will this.>>> ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网