python – 设置Django使用MySQL

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

我有一个非生产服务器,我用来测试所有的Web开发的东西。它是一个Debian 7.1 LAMP堆栈,运行MariaDB而不是普通的MySQL服务器包。

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

这是我的第一个大的混乱。在教程中我跟着家伙安装Django,启动他的第一个项目,重新启动Apache,Django刚刚从那时起工作。他去了他的浏览器,去了Django默认页面没有问题。

然而,我不得不cd进我的firstweb文件夹,并运行

python manage.py runserver myip:port

它的工作原理。没问题。但我想知道是否应该这样工作,如果这将导致问题下线?

我的第二个问题是,我想设置它所以它使用我的MySQL数据库。我进入我的settings.py在/ firstweb / firstweb,我看到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',
http://stackoverflow.com/questions/19189813/setting-django-up-to-use-mysql

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:python – 设置Django使用MySQL