设置Django使用MySQL
我想稍微离开一下PHP并学习Python。 为了使用Python进行Web开发,我需要一个框架来帮助模板化和其他的事情。
我有一个非生产服务器,我用它来testing所有的Web开发的东西。 这是一个运行MariaDB而不是普通MySQL服务器软件包的Debian 7.1 LAMP栈。
昨天我安装了Django并创build了我的第一个项目叫firstweb 。 我还没有改变任何设置。
这是我的第一个大混乱。 在教程中,我跟随了安装Django的人,开始了他的第一个项目,重新启动了Apache,Django从此开始工作。 他去了他的浏览器,并没有任何问题去Django的默认页面。
我然而,我必须cd到我的firstweb文件夹并运行
python manage.py runserver myip:port 它工作。 没问题。 但我想知道是否应该像这样工作,如果这会导致问题的线路?
我的第二个问题是,我想设置它,所以它使用我的MySQL数据库。 我进入我的settings.py下/ firstweb / firstweb,我看到引擎和名称,但我不知道该把什么放在这里。
然后在USER,PASSWORD和HOST区域,这是我的数据库和凭据? 如果我使用本地主机 ,我可以把本地主机放在主机区域?
  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开始,您也可以select使用MySQL 选项文件 。 你可以通过设置你的DATABASES数组来达到这个目的: 
 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'OPTIONS': { 'read_default_file': '/path/to/my.cnf', }, } } 
 您还需要使用上面类似的设置创build/path/to/my.cnf文件 
 [client] database = DB_NAME host = localhost user = DB_USER password = DB_PASSWORD default-character-set = utf8 
在Django 1.7中使用这种新的连接方法,了解订单连接的build立非常重要:
 1. OPTIONS. 2. NAME, USER, PASSWORD, HOST, PORT 3. MySQL option files. 
换句话说,如果你在OPTIONS中设置数据库的名字,这将优先于NAME,它将覆盖MySQL选项文件中的所有内容。
如果您只是在本地机器上testing您的应用程序,则可以使用
 python manage.py runserver 
 添加ip:port参数允许您自己以外的机器访问您的开发应用程序。 一旦准备好部署应用程序,我build议查看关于在djangobook上部署Django的章节 
Mysql的默认字符集通常不是utf-8,所以一定要用这个sql来创build你的数据库:
 CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_bin 
 如果您正在使用Oracle的MySQL连接器,则您的ENGINE行应如下所示: 
 'ENGINE': 'mysql.connector.django', 
首先请运行下面的命令来安装python依赖项,否则python runserver命令会抛出错误。
 sudo apt-get install libmysqlclient-dev sudo pip install MySQL-python 
然后configuration#Andy定义的settings.py文件,并在最后执行:
 python manage.py runserver 
玩的开心..!!
如上所述,您可以先从https://www.apachefriends.org/download.html轻松安装xampp,然后按照以下说明操作:;
- 从http://www.unixmen.com/install-xampp-stack-ubuntu-14-04/安装并运行xampp,然后从GUI启动Apache Web Server和MySQL数据库。
-  您可以根据需要configurationWeb服务器,但默认情况下,Web服务器位于http://localhost:80,数据库位于port 3306,而PhpMyadmin位于http://localhost/phpmyadmin/
- 从这里你可以看到你的数据库,并使用非常友好的GUI访问它们。
- 创build你想在你的Django项目上使用的任何数据库。
- 
编辑你的 settings.py文件,如:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'DB_NAME', 'HOST': '127.0.0.1', 'PORT': '3306', 'USER': 'root', 'PASSWORD': '', }}
- 
在virtualenv中安装以下软件包(如果您在virtualenv上使用django,则更优选): sudo apt-get install libmysqlclient-dev pip安装MySQL-python 
- 
而已!! 你已经用一个非常简单的方法configuration了Django。 
- 
现在运行你的Django项目: python manage.py迁移 python manage.py runserver 
实际上,不同的环境有很多问题,python版本等等。 您可能还需要安装python开发文件,所以为了“强制”安装,我将运行所有这些:
 sudo apt-get install python-dev python3-dev sudo apt-get install libmysqlclient-dev pip install MySQL-python pip install pymysql pip install mysqlclient 
你应该很好地接受公认的答案。 如果这对您很重要,可以删除不必要的软件包。
如果你正在使用python3.x然后运行下面的命令
 pip install mysqlclient 
然后改变setting.py
 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'DB', 'USER': 'username', 'PASSWORD': 'passwd', } } 
Andy的答案有帮助,但是如果你在你的django设置中暴露你的数据库密码,我build议按照mysql连接上的django官方configuration: https : //docs.djangoproject.com/en/1.7/ref/databases/
引用为:
 # settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'OPTIONS': { 'read_default_file': '/path/to/my.cnf', }, } } # my.cnf [client] database = NAME user = USER password = PASSWORD default-character-set = utf8 
在设置中replace“HOST”:“127.0.0.1”,只需将其添加到my.cnf:
 # my.cnf [client] database = NAME host = HOST NAME or IP user = USER password = PASSWORD default-character-set = utf8 
另一个有用的选项是为django设置你的存储引擎,你可能想在你的setting.py中使用它:
 'OPTIONS': { 'init_command': 'SET storage_engine=INNODB', } 
运行这些命令
sudo apt-get install python-dev python3-dev
sudo apt-get install libmysqlclient-dev
pip安装MySQL-python
pip安装pymysql
pip安装mysqlclient
然后configurationsettings.py像
 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django_db', 'HOST': '127.0.0.1', 'PORT': '3306', 'USER': 'root', 'PASSWORD': '123456', } } 
享受mysql连接
settings.py
 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django', 'USER': 'root', 'PASSWORD': '*****', 'HOST': '***.***.***.***', 'PORT': '3306', 'OPTIONS': { 'autocommit': True, }, } 
}
然后:
 python manage.py migrate 
如果成功将生成这些表格:
 auth_group auth_group_permissions auth_permission auth_user auth_user_groups auth_user_user_permissions django_admin_log django_content_type django_migrations django_session 
你可以使用mysql。
这是一个展示示例,在Django 1.11.5版本上testing: Django-pool-showcase
 您必须先创build一个MySQL数据库。 然后进入settings.py文件,用你的MySQL证书编辑'DATABASES'字典: 
 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'YOUR_DATABASE_NAME', 'USER': 'YOUR_MYSQL_USER', 'PASSWORD': 'YOUR_MYSQL_PASS', 'HOST': 'localhost', # Or an IP that your DB is hosted on 'PORT': '3306', } } 
这是一个完整的安装指南,用于设置Django在virtualenv上使用MySQL:
http://codex.themedelta.com/how-to-install-django-with-mysql-in-a-virtualenv-on-linux/
- PHP 5.3.3中的ini_set(“memory_limit”)根本不起作用
- 如何通过configuration和库文件完全删除MySQL?
- 优化PDF文件(使用Ghostscript或其他)
- Linux软件包储存库中的* -dev软件包实际上包含什么?
- 为sslv3问题修补pyopenssl
- Google server putty connect'断开连接:没有支持的authentication方法可用(服务器发送:publickey)
- 如何在不安装的情况下从apt-get下载软件包?
- CUDA与我的gcc版本不兼容
- 如何信任一个apt库:Debian apt-get update error public key is not available:NO_PUBKEY <id>