本文将告诉您Django如何调用其他库,Django调用与其他应用程序相对应的相应的知识点。我希望这对您有帮助。不要忘记收集此网站。
本文目录清单:
1.如何使用Django中的第三方库2. Django教程-02连接初始化数据库3.如何在Django中使用第三方库4.如何在Django中使用多个数据库。
使用和数据库之间的区别是:
如果不是Defalut(默认数据库),请在streatings.py中添加与命令之后数据库的settings.py相对应的名称。
数据库同步(创建表)
python manage.py syncdb #synchronous默认数据库,与原始
#synchronous数据库DB1(注意:不是数据库名称是db1,settings.py中的db1,但是您可以使这两个名称相同且易于使用)
python manage.py syncdb -database = db1
数据输出
python manage.py dumpdata app1 -database = db1 app1_fixture.json
python manage.py dumpdata app2 -database = db2 app2_fixture.json
python manage.py dumpdata auth_fixture.json
数据库指南
python manage.py loaddata app1_fixture.json -database = db1
python manage.py loaddata app2_fixture.json -database = db2
Django教程-01安装和使用
在上面的文章中,引入了安装Django的方法。让我们谈谈在此处连接数据库。
本文主要介绍坑和解决方案
正常连接和初始化数据库的命令是
执行此命令时,出现以下错误
在调查一部分之后,当我配置数据库时,我设置了一层默认值并将其修改如下。
然后,当您继续执行迁移时,您将报告以下错误
该机器的环境是Mac计算机。在官方教程上操作时,发现使用MySQLClient安装的Python软件包将取决于MySQL或MySQL-CLIENT的安装,但是当我安装MySQL和MySQL-CLIENT时,我发现了解决方案。后来发现在settings.py文件中,添加了以下代码,即可以连接pymsql。
或者可以在settings.py中添加代码__init__.py
然后执行python manage.py迁移命令,以发现该表是成功创建的。新表不影响原始库的其他表。
数据库= {
'默认': {
'引擎':'django.db.backends.sqlite3',#add'postgresql_psycopg2','mysql','sqlite3'或oracle'。
'name':'demo.db',#或数据库文件的路径,如果使用sqlite3。
#下面的设置未与sqlite3一起使用:
“用户”:'',
'密码': '',
“主机”:',#通过域插座为Localhost的#空位或通过TCP的Localhost的“ 127.0.1”。
'端口':'',#设置为默认的字符串。
}
}
instasted_apps =((
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
#取消注释下一行以启用管理员:
#'django.contrib.admin',
#取消注释下一行启用管理文档:
#'django.contrib.admindocs',
'南',
“学习”,
'图书',
治愈
1.2后,Django支持使用多个DB。那么如何使用呢?
1.修改设置
01Databases = {
02'默认值':{
03'名称':'app_data',
04'引擎':'django.db.backends.postgresql_psycopg2',
05'用户':'Postgres_user',
06'密码':'s3krit'
07},,
08“用户”:{
09'名称':'user_data',
10'引擎':'django.db.backends.mysql',
11“用户”:“ mysql_user”,
12'密码':'priv4te'
13}
14}
15
16database_routers = ['path.to.myapprouter']
2.实现自己的数据库路由器,该路由器确定每个程序使用哪个DB。
01class myapprouter(对象):
02”路由器控制模型上所有数据库操作的路由器
03 MyApp应用程序“”“”“”“”
04
05 def db_for_read(self,model,**提示):
06“指向MyApp模型上的所有操作
07如果model._meta.app_label =='myApp':
08返回“其他”
09返回无
10
11 def db_for_write(self,model,**提示):
12“点上的MyApp模型的所有操作都可以'其他'”
13如果model._meta.app_label =='myApp':
14返回“其他”
15返回无
16
17 def laster_relation(self,obj1,obj2,**提示):
18“如果涉及MyApp中的模型,请允许任何关系”
19如果obj1._meta.app_label =='myApp'或obj2._meta.app_label =='myapp'
20返回正确
21返回无
22
23 def allow_syncdb(self,db,型号):
24“确保MyApp应用仅出现在'其他db”上
25如果db =='其他':
26返回模型._META.APP_LABEL =='myApp'
27 elif model._meta.app_label =='myApp':
28返回错误
29返回无
同步数据库时,默认值将同步到默认数据库。当然
[播放]查看平原复制打印?
tt class =“ xref std std std std djadminopt docutils fillal” style =“ text-design:none; white spie:nowrap; nowrap; color:rgb(35,79,50); margin section:0px; 0px; margin-righh:margin-righh:margin-righh:边界底宽:1px;边界底彩:RGB(35、79、50);边界Xyle:点缀;
$ https://www.shouxicto.com/article/manage.py syncdb -database =用户/tt
那么如何在程序中选择?
例如,以下代码将选择默认数据库
[python]查看普通复制打印?
跨度样式=“ font-family:monospace;颜色:#234f32;”#这将在“默认”数据库上运行。
rution.objects.all()
#这会。
rution.objects.using('默认值')。all()/跨度
但是以下代码将选择其他数据库
[python]查看普通复制打印?
跨度样式=“ font-family:monospace;颜色:#234f32;”#这将在“离子”数据库上运行。
wuter.objects.using('其他')。all()/跨度
以上是查询情况。
[python]查看普通复制打印?
跨度样式=“ font-family:monospace;颜色:#234f32;
删除时
[python]查看普通复制打印?
跨度样式=“ font-family:monospace;颜色:#234f32;”u = user.objects.using('legacy_users')。获取(用户名='Fred')
u.delete()#将从`勒格_users的数据库/跨度删除
如何称呼Django的其他库的介绍,让我们谈谈它。感谢您阅读本网站的内容。有关Django如何调用其他应用程序的更多信息。Django如何致电其他库。不要忘记在此网站上找到它。