gpt4 book ai didi

python - 设置 Django 以使用 MySQL

转载 作者:IT老高 更新时间:2023-10-28 12:23:49 28 4
gpt4 key购买 nike

我想稍微远离 PHP 并学习 Python。为了使用 Python 进行 Web 开发,我需要一个框架来帮助处理模板和其他事情。

我有一个非生产服务器,用于测试所有 Web 开发内容。它是一个 Debian 7.1 LAMP 堆栈,运行 MariaDB 而不是常见的 MySQL-server 包。

昨天我安装了 Django 并创建了我的第一个项目,名为 firstweb。我还没有更改任何设置。

这是我的第一个大困惑。在教程中,我跟随那个人安装了 Django,开始了他的第一个项目,重新启动了 Apache,从那时起 Django 就开始工作了。他打开浏览器,毫无问题地进入了 Django 默认页面。

但是,我必须 cd 进入我的 firstweb 文件夹并运行

python manage.py runserver myip:port

而且它有效。没问题。但我想知道它是否应该像这样工作,这是否会导致问题?

我的第二个问题是我想设置它以便它使用我的 MySQL 数据库。我进入/firstweb/firstweb 下的 settings.py,我看到了 ENGINE 和 NAME,但我不确定放在这里的内容。

然后在 USER、PASSWORD 和 HOST 区域中,这是我的数据库及其凭据吗?如果我使用 localhost,我可以将 localhost 放在 HOST 区域吗?

最佳答案

MySQL support很容易添加。在您的 DATABASES 字典中,您将有这样的条目:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DB_NAME',
'USER': 'DB_USER',
'PASSWORD': 'DB_PASSWORD',
'HOST': 'localhost', # Or an IP Address that your DB is hosted on
'PORT': '3306',
}
}

您还可以选择使用 MySQL option files ,从 Django 1.7 开始。您可以通过像这样设置 DATABASES 数组来完成此操作:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': '/path/to/my.cnf',
},
}
}

您还需要使用与上述类似的设置创建 /path/to/my.cnf 文件

[client]
database = DB_NAME
host = localhost
user = DB_USER
password = DB_PASSWORD
default-character-set = utf8

在 Django 1.7 中使用这种新的连接方法,了解建立连接的顺序很重要:

1. OPTIONS.
2. NAME, USER, PASSWORD, HOST, PORT
3. MySQL option files.

In other words, if you set the name of the database in OPTIONS, this will take precedence over NAME, which would override anything in a MySQL option file.


如果你只是在本地机器上测试你的应用程序,你可以使用

python manage.py runserver

添加 ip:port 参数允许您自己以外的机器访问您的开发应用程序。一旦你准备好部署你的应用程序,我建议你看一下关于 Deploying Django 的章节。在 djangobook

Mysql 默认字符集通常不是 utf-8,因此请确保使用此 sql 创建数据库:

CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin

如果您使用 Oracle's MySQL connector您的 ENGINE 行应如下所示:

'ENGINE': 'mysql.connector.django',

请注意,您首先需要在您的操作系统上安装 mysql。

brew install mysql (MacOS)

另外,python 3 的 mysql 客户端包已更改(MySQL-Client 仅适用于 python 2)

pip3 install mysqlclient

关于python - 设置 Django 以使用 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19189813/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com