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

Django如何配置数据库(哪个是Django的默认数据库)

时间:2023-03-08 18:57:40 网络应用技术

  简介:本文的首席执行官注释将介绍有关Django如何配置数据库的相关内容。我希望这对每个人都会有所帮助。让我们来看看。

  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外:

  打印“不存在的用户)

  没有返回

  别的:

  返回你

  “在django项目的设置文件中,数据库配置部分更改为以下内容:”

  尝试:

  导入sae.const

  除例外,E:

  数据库= {

  '默认': {

  '引擎':'django.db.backends。',#add'postgresql_psycopg2','mysql','sqlite3'oracle'。

  “名称':'',#或数据库文件的路径,如果使用SQLITE3。

  “用户”:'',#未与SQLITE 3一起使用。

  '密码':'',#未与sqlite 3一起使用。

  '主机':'',#设置为Localhost的空字符串。不适用于sqlite3。

  '端口':'',#设置为默认的字符串。不适用于sqlite3。

  }

  }

  别的:

  数据库= {

  '默认': {

  '引擎':'django.db.backends.mysql',#add'postgresql_psycopg2','mysql','sqlite3'oracle'。

  'name':sae.const.mysql_db,#或数据库文件的路径,如果用户sqlite3。

  “用户”:sae.const.mysql_user,#未与sqlite3一起使用。

  '密码':sae.const.mysql_pass,#sqlite3不使用。

  '主机':sae.const.mysql_host,#设置为localhost的空字符串。不适用于sqlite3。

  '端口':sae.const.mysql_port,#设置为默认值的空字符串。不适用于sqlite3。

  }

  }

  修改设置中的数据库

  数据库= {

  '默认': {

  '引擎':'django.db.backends.mysql',

  “名称”:'书籍',#your数据库名称

  “用户”:“ root”,#your数据库用户名

  '密码':'',#your数据库密码

  '主机':'',#your数据库主机,停留在localhost的简短默认值中

  '端口':'3306',#your数据库端口

  }

  }

  instasted_apps =((

  “书籍”,#您的数据库名称

  治愈

  在MySQL中创建书籍数据库

  检查是否有语法错误

  使用python manage.py sqlall书籍显示mysql语法

  在Python Manage.py同步同步模型中使用数据库

  成功的创造!

  使用多个数据库时,数据库连接数据导入和导出

  使用和数据库之间的区别是:

  如果不是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

  由于建立连接的成本非常高,因此每次我们访问数据库时,它都非常消耗。

  当我们启动程序时,我们可以首先创建一些连接,将其放入集合中,在访问数据库时从集合中获取它,然后将其放回集合中。

  这只是在程序启动时消耗性能以创建连接。每次访问数据库时,都可以从内存中获得连接,从而可以大大提高效率。

  防范措施:

  因为池中的添加和删除非常频繁,所以LinkedList的使用很高

  集合中的所有连接都在被占用时创建它们,但是您需要注意连接总数

  使用组合模式/动态代理来处理释放连接的释放。运行关闭方法时,将连接放回池

  关于数据库连接池:

  数据库连接是一种关键且有限的昂贵资源,在多用户Web应用程序中尤其突出。数据库连接的管理可以显着影响整个应用程序的望远镜和鲁棒性,并影响程序的性能指标。数据库连接池为此问题提出了提出。

  数据库连接池负责分配,管理和发布数据库连接。它允许应用程序重复使用现有数据库连接的使用,并且不再重新建立一个;由遗漏引起的数据库。这项技术可以显着提高数据库操作的性能。

  当数据库连接池初始化时,数据库连接池是连接到连接池的,并且这些数据库连接的数量由最小数据库连接编号设置。无需履行这些数据库连接,连接池始终保证至少保证连接数。连接池的最大数据库连接限制了连接池可以拥有的最大连接数。当应用程序到连接池要求的连接数超过最大连接数时,这些请求将添加到等待队列。

  结论:以上是首席CTO汇编的Django相关内容的摘要,请注意Django如何配置数据库。希望它对您有所帮助!如果您解决了问题,请与更多关心此问题的朋友分享?