当前位置: 首页 > 网络应用技术

如何使用Django数据库?

时间:2023-03-07 13:57:29 网络应用技术

  简介:今天,首席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数据库的所有内容。我希望这对每个人都会有所帮助。如果您想了解有关此信息的更多信息,请记住收集并关注此网站。