gpt4 book ai didi

python - 无法从 django 与 MySQL 通信,但可以直接在 python 中

转载 作者:太空宇宙 更新时间:2023-11-03 12:19:53 25 4
gpt4 key购买 nike

我正在使用 Apache、django 1.6 和 MySQL 5.5.8 在 Windows 上本地设置一个 django 网站。我已经创建了一个测试数据库,并在 MyPHPAdmin 界面中用几条示例记录填充了它。它有一个专门针对 django 的用户,具有完全权限(仅针对该数据库)。

在 python session 中,我可以使用此函数与数据库交互

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()

好的...现在,当我在 manage.py 所在的“f:\web_django\Nutana”中的命令提示符下运行“python manage.py sql Courses”时,出现错误:

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!

关于python - 无法从 django 与 MySQL 通信,但可以直接在 python 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20615540/

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