求教,django初始化数据库的数据库错误的解决方法

xueyufeihu 的BLOG
用户名:xueyufeihu
文章数:46
评论数:81
访问量:222591
注册日期:
阅读量:5863
阅读量:12276
阅读量:298120
阅读量:1018662
51CTO推荐博文
第1章&Django中使用mysql数据库
1.1&安装MySQLdb支持
另外为了使Django能够正常连接mysq数据库还需要系统安装MySQLdb包,centos下使用yum命令&yum&&-y&install&&MySQL-python&安装即可。为了检测安装是否成功可以通过python交互界面测试下。
&&&&import&MySQLdb
如果系统没有报错说明MySQldb支持安装成功。
1.2&配置django文件
DATABASES&=&{ &&&&&'default':&{ &&&&&&&&&'ENGINE':&'django.db.backends.mysql',&#&Add&'postgresql_psycopg2',&'mysql',&'sqlite3'&or&'oracle'. &&&&&&&&&'NAME':&'blog',&&&&&&&&&&&&&&&&&&&&&&#&Or&path&to&database&file&if&using&sqlite3. &&&&&&&&&#&The&following&settings&are&not&used&with&sqlite3: &&&&&&&&&'USER':&'root', &&&&&&&&&'PASSWORD':&'<span style="color: #ffcom', &&&&&&&&&'HOST':&'127.0.0.1',&&&&&&&&&&&&&&&&&&&&&&#&Empty&for&localhost&through&domain&sockets&or&'127.0.0.1'&for&localhost&through&TCP. &&&&&&&&&'PORT':&'<span style="color: #ff',&&&&&&&&&&&&&&&&&&&&&&#&Set&to&empty&string&for&default. &&&&&} &}&
1.3&测试数据库链接是否成功测试数据库链接是否成功
&&&&from&&django.db&import&&&connection&&&&&&cursor=connection.cursor() &
如果系统没有报错则django连接mysql数据成功。
第2章&定义django模型
2.1&建立项目和应用
django-admin.py&&startproject&+&&项目名称&&命令用来新建一个项目。这里我们通过django-admin.py&&startproject&web&建立一个名为web的项目。然后我们进入web目录下通过ls命令查看下django-admin.py&&startproject&命令都创建了些什么文件。
[root@localhost&web]#&ls &&&manage.py&&web&
通过ls命令查看会发现在web的目录下又创建了个以web命名的目录和一个manage.py文本文件,这里的manage.py文件主要用来。下面我们进入项目文件web的目录查看下都创建了那些文件。&
[root@localhost&web]#&cd&web/ &[root@localhost&web]#&ls &__init__.py&&__init__.pyc&&settings.py&&settings.pyc&&urls.py&&urls.pyc&&wsgi.py&&wsgi.pyc &
这里主要介绍2个比较关键的文件settings.py&和urls.py文件。通过名字大家很容易看出来这2个文件的作用。settings.py&文件主要用来配置项目信息的,而url.py文件这用来配置和url访问规则相关的信息,以后大家会经常用到这2个文件,这里暂时不详细介绍了。
下面我们在web目录下创建一个应用。&
[root@localhost&web]#&pwd &/usr/local/web &[root@localhost&web]#&ls &blog&&manage.py&&web &[root@localhost&web]#&django-admin.py&&startapp&blog &[root@localhost&web]#&cd&blog &root@localhost&blog]#&ls &__init__.py&&__init__.pyc&&models.py&&models.pyc&&tests.py&&views.py &
通过名字我们很好识别各个文件的作用。这里关键的文件为models.py&views.py这2个文件。
2.2&为应用建立模型
在models.pyc文件中添加相关数据表文件。
&O&作者尊称(先生,女士),姓名,Email,头像。
&O&出版商名称,地址,城市,省份,国家,网址。
&O&书籍名字,出版出版日期,作者。
[root@localhost&blog]&&__init__.py&&__init__.pyc&&models.py&&models.pyc&&tests.py&&views.py &&[root@localhost&blog]&from&django.db&import&models &from&django.contrib&import&admin &&class&Publisher(models.Model): &&&&&name=models.CharField(max_length=30) &&&&&address=models.CharField(max_length=50) &&&&&city=models.CharField(max_length=60) &&&&&state_province=models.CharField(max_length=30) &&&&&county=models.CharField(max_length=50) &&&&&website=models.URLField() &class&Author(models.Model): &&&&&salutation=models.CharField(max_length=10) &&&&&first_name=models.CharField(max_length=30) &&&&&last_name=models.CharField(max_length=40) &&&&&email=models.EmailField() &&&&&headshot=models.ImageField(upload_to='/tmp') &class&Book(models.Model): &&&&&title=models.CharField(max_length=100) &&&&&authors=models.ManyToManyField(Author) &&&&&publisher=models.ForeignKey(Publisher) &&&&&publication_date=models.DateField()&
测试语法错误
在测试语法正确语法之前我们先把应用加入到配置文件里。vim&settings.py如下图所示。红色部分为我们新加的应用,别忘记后面有个逗号。
INSTALLED_APPS&=&( &&&&&&'django.contrib.auth', &&&&&&'django.contrib.contenttypes', &&&&&&'django.contrib.sessions', &&&&&&'django.contrib.sites', &&&&&&'django.contrib.messages', &&&&&&'django.contrib.staticfiles', &&&&&&'django.contrib.admin', &&&&&&'blog', &&&&&&#&Uncomment&the&next&line&to&enable&the&admin: &&&&&&#&'django.contrib.admin', &&&&&&#&Uncomment&the&next&line&to&enable&admin&documentation: &&&&&&#&'django.contrib.admindocs', &&) &
通过python&../manage.py&&validate&命令测试模型文件是否配置正确。笔者在测试的过程中发现如下所示的错误,最后发现是因为模型文件中headshot=models.ImageField(upload_to='/tmp'),需要image模块支持,centos系统中同yum命令安装即可,&yum&-y&install&python-imaging。
python&../manage.py&&validate &CommandError:&One&or&more&models&did&not&validate: &blog.author:&&headshot&:&To&use&ImageFields,&you&need&to&install&the&Python&Imaging&Library.&Get&it&at&/products/pil/&. &[root@localhost&blog]#&&yum&-y&install&python-imaging &
查看生成的数据表命令
当我们在模型文件里创建好相对应的数据文件后,可以通过pyhon&mangae.py&sqlall&应用名称命令来查看其对应的mysql创建命令。如下图所示。
我们可以手动复制到mysql命令行里创建相应的数据表,也可以通过python&manage.py&syncdb命令直接创建。
测试创建的数据表&
mysql&&use& &&Reading&table&information&for&completion&of&table&and&column&names &&You&can&turn&off&this&feature&to&get&a&quicker&startup&with&-A &&&Database&changed &&mysql&&show& &&+&&|&Tables_in_blog&&&&&&&&&&&&&| &&+&&|&auth_group&&&&&&&&&&&&&&&&&| &&|&auth_group_permissions&&&&&| &&|&auth_permission&&&&&&&&&&&&| &&|&auth_user&&&&&&&&&&&&&&&&&&| &&|&auth_user_groups&&&&&&&&&&&| &&|&auth_user_user_permissions&| &&|&blog_author&&&&&&&&&&&&&&&&| &&|&blog_book&&&&&&&&&&&&&&&&&&| &&|&blog_book_authors&&&&&&&&&&| &&|&blog_publisher&&&&&&&&&&&&&| &&|&django_admin_log&&&&&&&&&&&| &&|&django_content_type&&&&&&&&| &&|&django_session&&&&&&&&&&&&&| &&|&django_site&&&&&&&&&&&&&&&&| &&+&14&rows&in&set&(0.00&sec) &
通过查看我们发现,数据库中的表是以应用名字为前缀,模型文件中的类文件名为表名字的,这里的类名是忽略大小写的。下节我们讲会讲解怎么在bjango中对数据库文件进行相关操作。
本文出自 “” 博客,请务必保留此出处
了这篇文章
附件下载:  
类别:┆阅读(0)┆评论(0)
17:24:13 13:27:06
请输入验证码:如果您认为本站教程很有帮助,可以以鼓励翻译或写出更多高质量教程。
Django 模型(数据库)
Django 模型是与数据库相关的,与数据库相关的代码一般写在 models.py 中,Django 支持 sqlite3, MySQL, PostgreSQL等数据库,只需要在settings.py中配置即可,不用更改models.py中的代码,丰富的API极大的方便了使用。本节的代码:(Django 1.6, Python 2.7 测试环境)大家可以按照我的步骤来开始做:django-admin.py&startproject&learn_models&#&新建一个项目
cd&learn_models&#&进入到该项目的文件夹
django-admin.py&startapp&people&#&新建一个&people&应用(app)补充:新建app也可以用 python manage.py startapp people, 需要指出的是,django-admin.py 是安装Django后多出的一个命令,并不是指一个 django-admin.py 脚本在当前目录下。那么project和app什么关系呢,一个项目一般包含多个应用,一个应用也可以用在多个项目中。将我们新建的应用(people)添加到 settings.py 中的 INSTALLED_APPS中,也就是告诉Django有这么一个应用。INSTALLED_APPS&=&(
&&&&&#39;django.contrib.admin&#39;,
&&&&&#39;django.contrib.auth&#39;,
&&&&&#39;django.contrib.contenttypes&#39;,
&&&&&#39;django.contrib.sessions&#39;,
&&&&&#39;django.contrib.messages&#39;,
&&&&&#39;django.contrib.staticfiles&#39;,
&&&&&#39;people&#39;,
)我们打开 people/models.py 文件,修改其中的代码如下:from&django.db&import&models
class&Person(models.Model):
&&&&name&=&models.CharField(max_length=30)
&&&&age&=&models.IntegerField()我们新建了一个Person类,继承自models.Model, 一个人有姓名和年龄。这里用到了两种Field,更多Field类型可以参考教程最后的链接。我们来同步一下数据库python&manage.py&syncdb&#&进入&manage.py&所在的那个文件夹下输入这个命令
注意:Django&1.7&及以上的版本需要用以下命令
python&manage.py&makemigrations
python&manage.py&migrate我们会看到,Django生成了一系列的表,也生成了我们新建的people_person这个表,那么如何使用这个表呢?Django提供了丰富的API, 下面演示如何使用它。$&python&manage.py&shell
&&&&from&people.models&import&Person
&&&&Person.objects.create(name=&WeizhongTu&,&age=24)
&Person:&Person&object&
&&&我们新建了一个用户WeizhongTu 那么如何从数据库是查询到它呢?&&&&Person.objects.get(name=&WeizhongTu&)
&Person:&Person&object&
&&&我们用了一个 .objects.get() 方法查询出来符合条件的对象,但是大家注意到了没有,查询结果中显示&Person: Person object&,这里并没有显示出与WeizhongTu的相关信息,如果用户多了就无法知道查询出来的到底是谁,查询结果是否正确,我们重新修改一下 people/models.pyname 和 age 等字段中不能有 __(双下划线,因为在Django QuerySet API中有特殊含义(用于关系,包含,不区分大小写,以什么开头或结尾,日期的大于小于,正则等)也不能有Python中的关键字,name 是合法的,student_name 也合法,但是student__name不合法,try, class, continue 也不合法,因为它是Python的关键字(
print(keyword.kwlist) 可以打出所有的关键字)from&django.db&import&models
class&Person(models.Model):
&&&&name&=&models.CharField(max_length=30)
&&&&age&=&models.IntegerField()
&&&&def&__unicode__(self):
&&&&#&在Python3中使用&def&__str__(self)
&&&&&&&&return&self.name按CTRL + C退出当前的Python shell, 重复上面的操作,我们就可以看到:新建一个对象的方法有以下几种:Person.objects.create(name=name,age=age)p = Person(name=&WZ&, age=23)p.save()p = Person(name=&TWZ&)p.age = 23p.save()Person.objects.get_or_create(name=&WZT&, age=23)这种方法是防止重复很好的方法,但是速度要相对慢些,返回一个元组,第一个为Person对象,第二个为True或False, 新建时返回的是True, 已经存在时返回False.获取对象有以下方法:Person.objects.all()Person.objects.all()[:10] 切片操作,获取10个人,不支持负索引,切片可以节约内存Person.objects.get(name=name)get是用来获取一个对象的,如果需要获取满足条件的一些人,就要用到filterPerson.objects.filter(name=&abc&) # 等于Person.objects.filter(name__exact=&abc&) 名称严格等于 &abc& 的人Person.objects.filter(name__iexact=&abc&) # 名称为 abc 但是不区分大小写,可以找到 ABC, Abc, aBC,这些都符合条件Person.objects.filter(name__contains=&abc&) # 名称中包含 &abc&的人Person.objects.filter(name__icontains=&abc&) #名称中包含 &abc&,且abc不区分大小写Person.objects.filter(name__regex=&^abc&) # 正则表达式查询Person.objects.filter(name__iregex=&^abc&)# 正则表达式不区分大小写filter是找出满足条件的,当然也有排除符合某条件的Person.objects.exclude(name__contains=&WZ&) # 排除包含 WZ 的Person对象Person.objects.filter(name__contains=&abc&).exclude(age=23) # 找出名称含有abc, 但是排除年龄是23岁的参考文档:Django models 官方教程:&Fields相关官方文档:
您的邮件地址:
错误详细描述:
自强学堂为提供的内容仅用于学习,测试和培训。实例可能为了更容易理解而简化。我们一直对教程,参考手册,在线实例保持修订,但是我们不能保证所有内容全部正确。通过使用本站进行学习随之而来的风险与本站无关。当使用本站时,代表您已接受了本站的使用条款和隐私条款。自强学堂是以学习和分享知识为目的,对任何法律问题及风险不承担任何责任。版权所有,保留一切权利。
自强学堂是用
技术开发的站点,托管在平台
Copyright &
Powered by 自强学堂 All Rights Reserved.
JavaScript
Server Side
JavaScript
服务器相关
浏览器脚本
服务器脚本Django数据库操作之save与update - 简书
下载简书移动应用
写了9829字,被5人关注,获得了3个喜欢
Django数据库操作之save与update
Python框架Django有着诸多优点,它提供的models可以让开发者方便地操作数据库,但正是由于对上层的良好的封装,使得提升数据库操作性能必须要清楚地知道Django的数据库操作到底执行了哪些SQL语句。例如数据更新操作,对单条记录,可以使用save或者是update两种方式在Django工程下的settings.py下将log设置为DEBUG,即可查看save和update分别执行了哪些SQL语句如有一张表名叫做Example使用save:k = Example.objects.get(id=481)k.total_calories = 12k.save()执行的SQL语句如下所示:SELECT (1) AS `a` FROM `Example` WHERE `Example`.`id` = 481
LIMIT 1; args=(481,) UPDATE `Example` SET `user_id` = asdfasdf, `event_id` = -1, `join_type` = 0, `name` = , `phone` = , `email` = , `company_name` = , `address` = , `if_type` = 0, `code` = , `location` = , `total_days` = 0, `total_length` = 0, `total_calories` = 12, `comments` = , `reserved_1` = , `reserved_2` = , `reserved_3` = , `reserved_4` = , `reserved_5` = , `create_datetime` =
17:43:53 WHERE `Example`.`id` = 481 ; args=(u'asdfasdf', -1, 0, u'', u'', u'', u'', u'', 0, u'', u'', 0, 0, 12, u'', u'', u'', u'', u'', u'', u' 17:43:53', 481)首先要查询k这条记录,然后save()的时候提交更新的内容,发现更新的时候把Example中的有字段都SET赋值的一次使用updateExample.objects.filter(id=481).update(total_calories = 10)执行的SQL语句是:UPDATE `Example` SET `total_calories` = 10 WHERE (`Example`.`user_id` = asdfasdfAND `Example`.`id` = 481 ); args=(10, u'asdfasdf', 481)这条SQL语句简短而且执行速度要优于使用save的速度。从SQL的执行情况来看,使用upate是要优于save方式的。从使用情境上看,update更加适用于批量数据更新,而save则更适合当然也只适合做单条记录的数据更新操作了。在使用Django的数据模型操作数据库时,了解这些底层的SQL操作很有必要。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
选择支付方式:文章 [ 6 ]
刚试了一下,我的pycharm是可以自动提示 objects的。。
没有提示 应该是 pycharm 的某些设置有问题吧。
我感觉也像是,但是不确定是什么原因.
可以试着发出来你的path环境变量的参数么?
另外再请教一下:PYTHONPATH这个环境变量是必须么?我目前发现我没有这个环境变量
以下的是我的内容
PATH=C:\Windows\system32;C:\WC:\Windows\System32\WC:\Windows\System32
\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-St
C:\Python27;C:\Python27\Lib\site-packages\C:\Python27\SC:\Pro
gram Files\MySQL\MySQL Server 5.6\C:\Program Files (x86)\MySQL\MySQL Utiliti
es 1.3.6\;C:\Python27\Scripts\;C:\Python27\Scripts\\hold
我也没有设置 PYTHONPATH 这个变量的
哦,这个问题困扰我几天了,一直没有解决,重点是在manane.py shell下完全可以执行,但在pycharm里就完全不行,真心搞不明白了!
view里面aa是什么,不应该传client_list 进去么
专注于Django中国技术发展的社区
Copyright & 2013今天有时间就又开始了Django的学习,下载了《Django Web开发指南》,按照第二章的例子准备做下blog的小例子。没想到在开始不久在连接数据库的时候就开始出现了问题。耗费了我一个多小时的时间才终于将它解决。顺便说下Django Web开发指南这本书,大致的扫了一下,发现第一章讲python基本知识居然有6近0页,这是鸡肋啊。
按照书上的步骤,先创建一个项目
django-admin startproject mysite
之后运行开发服务器,这是一个Django自带的用于开发期间的服务器
1 ./manage.py runserver
之后创建blog应用
./manage.py startapp blog
然后修改setting.py文件,在INSTALLED_APPS元组的最后加上'mysite.blog',(结尾的逗号是必须的).
之后在models.py中设计model
1 from django.db import models2 class BlogPost(models.Model):3
title = models.CharField(max_length = 150)4
body = models.TextField()5
timestamp = models.DateTimeField()
接下来就是设置数据库了,也就是我出现问题的地方。Django支持mysql,PostgreSQL,Oracle等数据库,还有简单的附带在python中SQLite.我选用mysql来进行数据库的设置.
首先是修改setting.py文件,其中的数据库部分
1 DATABASES = { 2
'default': { 3
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mysql',
'USER': 'root',
'PASSWORD': 'fan',
'HOST': 'localhost',
'PORT': '',
这是最终的配置这个正确的结果,这里的name一定要设定为你的数据库的名字,如果错了就会出现一下错误信息,我开始写的是djangodb
super(Connection, self).__init__(*args, **kwargs2)_mysql_exceptions.OperationalError: (1049, "Unknown database 'djangodb'")
而一开始我出现的是下面的错误,非常的长,而有用的是最后的错误提示
root@Fan's PC:/home/fan/djangoProject/mysite# ./manage.py syncdbTraceback (most recent call last):
File "./manage.py", line 14, in &module&
execute_manager(settings)
File "/usr/lib/pymodules/python2.7/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/usr/lib/pymodules/python2.7/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/pymodules/python2.7/django/core/management/__init__.py", line 261, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/usr/lib/pymodules/python2.7/django/core/management/__init__.py", line 67, in load_command_class
module = import_module('%mands.%s' % (app_name, name))
File "/usr/lib/pymodules/python2.7/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/lib/pymodules/python2.7/django/core/management/commands/syncdb.py", line 7, in &module&
from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
File "/usr/lib/pymodules/python2.7/django/core/management/sql.py", line 6, in &module&
from django.db import models
File "/usr/lib/pymodules/python2.7/django/db/__init__.py", line 78, in &module&
connection = connections[DEFAULT_DB_ALIAS]
File "/usr/lib/pymodules/python2.7/django/db/utils.py", line 93, in __getitem__
backend = load_backend(db['ENGINE'])
File "/usr/lib/pymodules/python2.7/django/db/utils.py", line 33, in load_backend
return import_module('.base', backend_name)
File "/usr/lib/pymodules/python2.7/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/lib/pymodules/python2.7/django/db/backends/mysql/base.py", line 14, in &module&
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdbroot@Fan's PC:/home/fan/djangoProject/mysite# vi settings.pyroot@Fan's PC:/home/fan/djangoProject/mysite# ./manage.py syncdbTraceback (most recent call last):
File "./manage.py", line 14, in &module&
execute_manager(settings)
File "/usr/lib/pymodules/python2.7/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/usr/lib/pymodules/python2.7/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/pymodules/python2.7/django/core/management/__init__.py", line 261, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/usr/lib/pymodules/python2.7/django/core/management/__init__.py", line 67, in load_command_class
module = import_module('%mands.%s' % (app_name, name))
File "/usr/lib/pymodules/python2.7/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/lib/pymodules/python2.7/django/core/management/commands/syncdb.py", line 7, in &module&
from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
File "/usr/lib/pymodules/python2.7/django/core/management/sql.py", line 6, in &module&
from django.db import models
File "/usr/lib/pymodules/python2.7/django/db/__init__.py", line 78, in &module&
connection = connections[DEFAULT_DB_ALIAS]
File "/usr/lib/pymodules/python2.7/django/db/utils.py", line 93, in __getitem__
backend = load_backend(db['ENGINE'])
File "/usr/lib/pymodules/python2.7/django/db/utils.py", line 33, in load_backend
return import_module('.base', backend_name)
File "/usr/lib/pymodules/python2.7/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/lib/pymodules/python2.7/django/db/backends/mysql/base.py", line 14, in &module&
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb
最后的提示是No module named MYSQLdb,就是说没有和mysql连接上。我开始尝试进入mysql,不知是为什么,一直出现类似与
error: 'Access denied for user 'root'@'localhost' (using password: NO)'的错误。我猜想可能是密码的原因,不管了,时间紧迫我就想着重新安装mysql。
在ubuntu下,首先进行卸载,然后安装,命令如下
1 卸载2 sudo apt-get autoremove --purge mysql-server3 sudo apt-get remove mysql-common
//用于彻底删除4 安装5 sudo apt-get install mysql-server6 sudo apt-get install mysql-client
在安装的过程中会弹出一个对话框来设置mysql 的root用户的密码。
但是重新安装好后还是不能成功。查找资料过后发现还需要安装python-mysql的触发器,也就是python-mysqldb
apt-get install python-mysqldb
安装好后,我再进行测试,终于成功了。
root@Fan's PC:/home/fan/djangoProject/mysite# ./manage.py syncdbCreating tables ...Creating table auth_permissionCreating table auth_group_permissionsCreating table auth_groupCreating table auth_user_user_permissionsCreating table auth_user_groupsCreating table auth_userCreating table auth_messageCreating table django_content_typeCreating table django_sessionCreating table django_siteCreating table blog_blogpostYou just installed Django's auth system, which means you don't have any superusers defined.Would you like to create one now? (yes/no): yesUsername (Leave blank to use 'root'): ***E-mail address: ******@Password: Password (again): Superuser created successfully.Installing custom SQL ...Installing indexes ...No fixtures found.
总结一下,引发这些问题其实很简单,就是mysql数据库和django的配置两个方面,setting.py文件不能写错,另外还需要安装python-mysqldb,否则会出现错误。
阅读(...) 评论()

我要回帖

更多关于 django 多数据库 的文章

 

随机推荐