如何在django中使用多个数据库

如何在django中使用多个数据库,第1张

在配置里将数据库路径放进去。然后在module里,自己选择相应的库与相应的model做关联。

此外还可以指定表格中的字段名。另外如果上面的方法不好用,你也可以自己直接连接数据库,自己管理。

django的数据库连接是没有连接池的。 每次访问都连接一次,效率低。不过你也可以用同样的原理 ,用mysqldb之类的库,自己建立数据库连接。

创建mysite目录

django-adminpy startproject mysite这个命令作用是:这将创建在当前目录创建一个mysite目录

前提是从命令行上cd到你想储存你代码的目录,然后生成各种子目录

首先需要注意的是文件目录

这里面的文件大致作用:

books这个 文件夹存放的是新建数据库的各种信息

books/templates这个目录下装的是网页的布局,当然这个网页的布局就是showhtml所提供

books/viewspy定义函数,并且把showhtml引入进去,文件内容如下:

from djangoshortcuts import render,render_to_response

from djangotemplate import loader

from books import models

# Create your views here

def show(request):

# publisher_list = [{'name':"gongye",'city':'beijing'}]

publisher_list = modelsPublisherobjectsall()

return render_to_response('showhtml',{'publisher_list':publisher_list})

12345678910111213

books/modelspy文件存放的是你所创建的数据库,代码如下:

#coding=utf-8

from __future__ import unicode_literals

from djangodb import models

# Create your models here

class Publisher(modelsModel):

name = modelsCharField(max_length = 30)

address = modelsCharField(max_length = 50)

city = modelsCharField(max_length = 60)

state_province = modelsCharField(max_length = 30)

country = modelsCharField(max_length = 50)

website = modelsURLField()

# __unicode__这个函数用来返回某个值可以很好的用于查询和admin界面的显示

def __unicode__(self):

return selfname

class Author(modelsModel):

first_name = modelsCharField(max_length = 30)

last_name = modelsCharField(max_length = 40)

email = modelsEmailField(blank = True,verbose_name = 'e-mail')

def __unicode__(self):

return u'%s %s'%(selffirst_name,selflast_name)

class Book(modelsModel):

title = modelsCharField(max_length = 100)

author = modelsManyToManyField(Author)

publisher = modelsForeignKey(Publisher)

publication_date = modelsDateField(blank = True,null = True)

def __unicode__(self):

return selftitle

123456789101112131415161718192021222324252627282930313233

books下其他的文件就是在创建的过程中自己产生的

website/templates文件里存放的是各种显示的静态网页布局,这么多html文件,只要你在访问测试的时候,端口号后面加上html的文件名字就行比如,我要访问templates/basehtml文件,输入网址:localhost:8000/base就可以

website/settingspy文件是Django的设置文档,里面的INSTALLED_APPS添加多个应用,比如这里面我九添加了books应用,代码如下:

INSTALLED_APPS = [

'djangocontribadmin',

'djangocontribauth',

'djangocontribcontenttypes',

'djangocontribsessions',

'djangocontribmessages',

'djangocontribstaticfiles',

'books',

在Django项目中,如果你没有设计数据库,那么你可以在配置文件中将DATABASES设置为空,这样Django会使用默认的SQLite数据库。

你可以在settingspy文件中找到DATABASES设置。如果你没有设计数据库,可以将其设置为空,例如:

```python

DATABASES = {}

```

或者你可以直接注释掉整个DATABASES设置,例如:

```python

# DATABASES = {

# 'default': {

# 'ENGINE': 'djangodbbackendssqlite3',

# 'NAME': BASE_DIR / 'dbsqlite3',

# }

# }

```

Django教程——01安装使用

在上面一篇文章里,介绍了安装Django的方法,这里说说连接数据库吧

这篇主要介绍踩的坑和解决办法

正常连接和初始化数据库的命令是

执行这个命令的时候,出现了如下报错

经过一段排查,是我配置数据库的时候,多嵌套了一层default,修改为如下即可

然后继续执行migrate时,会报如下错误

本机环境是mac电脑,按官方教程 *** 作的时候,发现安装mysqlclient的python包会依赖本机安装mysql或者mysql-client,但在装mysql和mysql-client的时候,发现一直报错。后面发现解决办法是,在settingspy文件里,加下如下代码,即改用pymsql连接即可。

或者在settingspy同目录的__init__py里加如上代码也可以

然后再执行python managepy migrate命令会发现表顺利创建。新增表,不影响原有库的其他表。

以上就是关于如何在django中使用多个数据库全部的内容,包括:如何在django中使用多个数据库、django 查询MySQL数据库、django项目若未设计数据库,那么配置文件中DATABASE可以为空吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10091851.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存