簡體   English   中英

無法通過Django與MySQL通信,但可以直接在python中進行通信

[英]Can't communicate with MySQL from django, but can directly in python

我正在Windows上使用Apache,django 1.6和MySQL 5.5.8在本地建立django網站。 我創建了一個測試數據庫,並在MyPHPAdmin界面中填充了幾個示例記錄。 它具有專門用於django的用戶,具有完整權限(僅適用於該數據庫)。

在python會話中,我可以使用此功能與數據庫進行交互

def TestConnection():
    import MySQLdb
    db=MySQLdb.connect(host="localhost", user="django", passwd="nu_django", db="nutana_django")
    cursor=db.cursor()
    cursor.execute("select * from test")

    for x in range(0,cursor.rowcount):
        row=cursor.fetchone()
        print row[0], ' --> ', row[1]

並且它輸出數據庫的記錄,因此我似乎使MySQL,MySQLdb和python正常工作。

接下來,在django中,我使用“ python manage.py startapp Courses”創建了一個名為Courses的應用程序,並編輯了settings.py文件以將Courses包含在Installed_Apps中,並定義了數據庫連接,如下所示:

ROOT_URLCONF = 'Nutana.urls'

WSGI_APPLICATION = 'Nutana.wsgi.application'

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'nutana_django',
        'USER':'django',
        'PASSWORD': 'nu_django',
        'HOST':'127.0.0.1',
        'PORT':   '80'
    }
}

最后一步是Apache。 我已將WSGI模塊添加到apache並將以下內容附加到文件末尾:

LoadModule wsgi_module modules/mod_wsgi.so

WSGIScriptAlias /Nutana F:/Web_Django/Nutana/Nutana/wsgi.py
WSGIPythonPath F:/Web_Django/Nutana
<Directory F:/Web_Django/Nutana/Nutana/>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

上面的路徑都是正確的,但我不認為這一切都是必要的。

在f:\\ web_django \\ Nutana \\ Courses中,我已將models.py編輯為以下內容:

from django.db import models

# Create your models here.
class Course(models.Model):
    Name = models.CharField(max_length=200)
    start_date = models.DateTimeField('Start Date')
    Quota = models.IntegerField()

class Course_Venue(models.Model):
    Course = models.ForeignKey(Course)
    Name = models.CharField(max_length=200)
    Max_Size = models.IntegerField()

好的...現在,當我從“ f:\\ web_django \\ Nutana”中的命令提示符運行“ python manage.py sql Courses”時,manage.py所在的地方,我得到一個錯誤:

django.db.utils.OperationalError: (2013, "Lost connection to MySQL server at 'waiting for initial communication packet', system error: 0")

這是很多配置,我不知道哪里出錯了! 我不認為Apache是​​這里的問題,但我已經將它包括在內了以進行全面介紹。 如果我調出一個不存在的網頁,則404錯誤會包含對wsgi的引用,所以也許這一切都很好?

localhost
16/12/2013 10:14:34 AM
Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o mod_wsgi/3.3 Python/2.7.6 PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1

MySQL服務器的端口號是3306,而不是80!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM