开发者社区> 问答> 正文

设置Django以使用MySQL?mysql

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

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

昨天我安装了Django并创建了我的第一个项目firstweb。我尚未更改任何设置。

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

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

python manage.py runserver myip:port 而且有效。没问题。但是我想知道它是否应该像这样工作,这是否会引起问题?

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

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

展开
收起
保持可爱mmm 2020-05-17 16:54:04 554 0
1 条回答
写回答
取消 提交回答
  • 308

    MySQL支持很容易添加。在您的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', } } 从Django 1.7开始,您还可以选择使用MySQL 选项文件。您可以这样设置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. 换句话说,如果您在OPTIONS中设置数据库的名称,它将优先于NAME,而NAME将覆盖MySQL选项文件中的所有内容。

    如果您只是在本地计算机上测试应用程序,则可以使用

    python manage.py runserver 添加ip:port参数允许您自己的机器以外的其他机器访问您的开发应用程序。准备好部署应用程序后,建议您阅读djangobook上有关部署Django的章节。

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

    CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin 如果您正在使用Oracle的MySQL的连接器的ENGINE线应该是这样的:

    'ENGINE': 'mysql.connector.django', 请注意,您首先需要在操作系统上安装mysql。

    brew install mysql (MacOS) 此外,mysql客户端软件包已针对python 3进行了更改(MySQL-Client仅适用于python 2)

    pip3 install mysqlclient来源:stack overflow

    2020-05-17 16:59:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像