简介:今天,首席CTO注释要与您分享如何使用Django数据库。如果您可以添加您现在面临的问题,请不要忘记注意此网站。让我们现在开始!
方法/步骤
修改设置中的数据库
数据库= {
'默认': {
'引擎':'django.db.backends.mysql',
“名称”:'书籍',#your数据库名称
“用户”:“ root”,#your数据库用户名
'密码':'',#your数据库密码
'主机':'',#your数据库主机,停留在localhost的简短默认值中
'端口':'3306',#your数据库端口
}
}
instasted_apps =((
“书籍”,#您的数据库名称
治愈
在MySQL中创建书籍数据库
检查是否有语法错误
使用python manage.py sqlall书籍显示mysql语法
在Python Manage.py同步同步模型中使用数据库
成功的创造!
Django有自己的ORM模块。
从流行的角度来看,该过程如下:
在django中写python代码
通过ORM模块将Python代码转换为SQL语句
通过数据库操作模块,例如PymySQL,使用SQL语句,然后访问数据库访问数据
上述过程的相反方向
获取Python格式的数据
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教程-01安装和使用
在上面的文章中,引入了安装Django的方法。让我们谈谈在此处连接数据库。
本文主要介绍坑和解决方案
正常连接和初始化数据库的命令是
执行此命令时,出现以下错误
在调查一部分之后,当我配置数据库时,我设置了一层默认值并将其修改如下。
然后,当您继续执行迁移时,您将报告以下错误
该机器的环境是Mac计算机。在官方教程上操作时,发现使用MySQLClient安装的Python软件包将取决于MySQL或MySQL-CLIENT的安装,但是当我安装MySQL和MySQL-CLIENT时,我发现了解决方案。后来发现在settings.py文件中,添加了以下代码,即可以连接pymsql。
或者可以在settings.py中添加代码__init__.py
然后执行python manage.py迁移命令,以发现该表是成功创建的。新表不影响原始库的其他表。
1.安装Django
[播放]查看普通副本
CD Django-1.4
python setup.py安装
2.安装PostgreSQL的客户端:
[播放]查看普通副本
sudo apt-get安装-y postgresql-client-9.1 python-psycopg2
3.创建项目:
[播放]查看普通副本
django-admin.py startproject myproject
4.在myproject下创建一个新应用:
[播放]查看普通副本
python manage.py startapp myapp
4.添加的环境变量:
编辑/etc/profile文件,最后添加以下句子:
[播放]查看普通副本
跨度样式=“颜色:#ff0000;”导出pythonpath = $ pythonpath:/home/yc/src/myproject
导出django_settings_module = myproject.settings/span
5。
假设数据库是由Django的另一个应用程序(其他应用程序的名称)构建的。
192.168.1.23.有一个好数据库中的表格,名称为其他app_user,然后将otherapp/models.py复制到myApp
/models.py。
请注意,检查类meta:Models.py下的类用户类的一部分:如果没有Applabel标签,请添加:app_label ='其他应用程序'
在/home/home/yc/src/myproject下修改settings.py文件,如下:如下:
[播放]查看普通副本
数据库= {
'默认': {
'引擎':'django.db.backends.postgresql_psycopg2',#add'postgresql_psycopg2','mysql','sqlite3'或oracle'。
'name':'mydb',#'vps2db_test1'或数据库文件的路径,如果使用sqlite3。
“用户”:“ postgres”,#未与sqlite 3一起使用。
'密码':'123',#未与sqlite 3一起使用。
“主机”:'192.168.1.23',#设置为Localhost的空字符串。不适用于sqlite3。
'port':'5432',#设置为默认值的空字符串。不适用于sqlite3。
}
}
[播放]查看普通副本
instasted_apps =((
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'跨度样式=“颜色:#ff0000;”myapp/span',
治愈
6.在MyApp目录下编写测试程序
[python]查看普通副本
从型号导入用户
如果__名称__ ==“ __ main__”:
尝试:
u = user.objects.get(id = user_id)
除user.doesnotexist外:
打印“不存在的用户)
没有返回
别的:
返回你
结论:以上是首席CTO注释引入的Django数据库的所有内容。我希望这对每个人都会有所帮助。如果您想了解有关此信息的更多信息,请记住收集并关注此网站。