Python 为什么Django SessionWizardView调查应用程序数据没有以可用格式显示在MySQL数据库中?
我已经用一个数据库构建了一个多页面的调查应用程序,但是我在如何将通过调查表单提交的数据保存到我的MySQL数据库Python 为什么Django SessionWizardView调查应用程序数据没有以可用格式显示在MySQL数据库中?,python,mysql,django,Python,Mysql,Django,我已经用一个数据库构建了一个多页面的调查应用程序,但是我在如何将通过调查表单提交的数据保存到我的MySQL数据库django_db中遇到了一些问题。也就是说,我根本不知道或不理解正在被拯救的是什么。这是我第一次构建这样的应用程序,甚至是使用数据库,请原谅我的无知 我的问题是,当我通过phpMyAdmin查看我的数据库时,没有任何东西可以识别为来自我的应用程序,所以我不知道从哪里开始 我相信SessionWizardView中的数据应该存储在django_session表中,但是当我检查它时,它看
django_db
中遇到了一些问题。也就是说,我根本不知道或不理解正在被拯救的是什么。这是我第一次构建这样的应用程序,甚至是使用数据库,请原谅我的无知
我的问题是,当我通过phpMyAdmin查看我的数据库时,没有任何东西可以识别为来自我的应用程序,所以我不知道从哪里开始
我相信SessionWizardView中的数据应该存储在django_session
表中,但是当我检查它时,它看起来像胡言乱语
这是一份会话\u数据的副本
-这就是我要看的吗
ZTEwNWUzZmI4NjA5MmQ3Nzk2MDQ1MWY3YzE2MjYxZWZjNDJmODQ3Yjp7ImVpZ2h0X2ltYWdlIjoiUDFEOS5qcGciLCJwYXRoX3R3b19pbWFnZXMiOltdLCJwYXRoX29uZV9pbWFnZXMiOltdLCJ0aGlyZF9pbWFnZSI6IlA5RDguanBnIiwiaW1hZ2VzIjpbXSwid2l6YXJkX3N1cnZleV93aXphcmRfb25lIjp7InN0ZXBfZmlsZXMiOnt9LCJzdGVwIjpudWxsLCJleHRyYV9kYXRhIjp7fSwic3RlcF9kYXRhIjp7fX0sInNpeHRoX2ltYWdlIjoiUDVENC5qcGciLCJmb3VydGhfaW1hZ2UiOiJQNEQzLmpwZyIsImZpZnRoX2ltYWdlIjoiUDJEMS5qcGciLCJ3aXphcmRfc3VydmV5X3dpemFyZF90d28iOnsic3RlcF9maWxlcyI6e30sInN0ZXAiOm51bGwsImV4dHJhX2RhdGEiOnt9LCJzdGVwX2RhdGEiOnt9fSwicGF0aF90aHJlZV9pbWFnZXMiOlsiUDNEMS5qcGciLCJQNEQyLmpwZyIsIlA1RDMuanBnIiwiUDZENC5qcGciLCJQN0Q1LmpwZyIsIlA4RDYuanBnIiwiUDlENy5qcGciLCJQMUQ4LmpwZyIsIlAyRDkuanBnIl0sImluc3RydWN0aW9uX3Rhc2tfb25lX2ltYWdlcyI6WyJJVDFBLmpwZyIsIklUMUIuanBnIiwiSVQxQy5qcGciXSwiZmlyc3RfaW1hZ2UiOiJQNkQ1LmpwZyIsInNlY29uZF9pbWFnZSI6IlA4RDcuanBnIiwic2V2ZW50aF9pbWFnZSI6IlAzRDIuanBnIiwic2xpZGVyX0RWX3ZhbHVlcyI6W10sImluc3RydWN0aW9uX3Rhc2tfdHdvX2ltYWdlcyI6WyJJVDJBLmpwZyIsIklUMkIuanBnIiwiSVQyQy5qcGciXSwibmludGhfaW1hZ2UiOiJQN0Q2LmpwZyIsIndpemFyZF9zdXJ2ZXlfd2l6YXJkX3RocmVlIjp7InN0ZXBfZmlsZXMiOnsiMSI6e30sIjAiOnt9LCIyIjp7fX0sInN0ZXAiOiIzIiwiZXh0cmFfZGF0YSI6e30sInN0ZXBfZGF0YSI6eyIxIjp7IjEtbm90aGluZyI6WyIiXSwic2xpZGVyX3ZhbHVlIjpbIisxMDAiXSwiY3NyZm1pZGRsZXdhcmV0b2tlbiI6WyIwblNZWTFuZkZ6QzdBb0R0UFlwZkpyc1NySGhGRWhONyJdLCJzdWJtaXQiOlsiTmV4dCJdLCJzdXJ2ZXlfd2l6YXJkX3RocmVlLWN1cnJlbnRfc3RlcCI6WyIxIl19LCIwIjp7IjAtbm90aGluZyI6WyIiXSwiY3NyZm1pZGRsZXdhcmV0b2tlbiI6WyIwblNZWTFuZkZ6QzdBb0R0UFlwZkpyc1NySGhGRWhONyJdLCJzdXJ2ZXlfd2l6YXJkX3RocmVlLWN1cnJlbnRfc3RlcCI6WyIwIl0sInN1Ym1pdCI6WyJOZXh0Il0sInNsaWRlcl92YWx1ZSI6WyIrMTAwIl19LCIyIjp7ImNzcmZtaWRkbGV3YXJldG9rZW4iOlsiMG5TWVkxbmZGekM3QW9EdFBZcGZKcnNTckhoRkVoTjciXSwiMi1ub3RoaW5nIjpbIiJdLCJzdXJ2ZXlfd2l6YXJkX3RocmVlLWN1cnJlbnRfc3RlcCI6WyIyIl0sInN1Ym1pdCI6WyJOZXh0Il19fX19
问题:
- 我通过
终端
创建数据库django_数据库代码>和其中的表是 当我运行命令
而不是 我不接触数据库python manage.py syncdb
- 我可以使用SessionWizardView在我的 本地计算机和公用服务器上的。没有错误,这是一个很好的例子 一切正常
- 我已经设置了phpMyAdmin,可以看到
数据库。然而 我真的不知道我在看什么django\u db
class SurveyWizardOne(SessionWizardView):
def get_context_data(self, form, **kwargs):
context = super(SurveyWizardOne, self).get_context_data(form, **kwargs)
....
....
def done(self, form_list, **kwargs):
return render(self.request, 'Return_to_AMT.html', {
'form_data': [form.cleaned_data for form in form_list],
})
调查中的大部分问题相对简单,如:
class SurveyFormA(forms.Form):
#When were you born?
birthdate = forms.DateField(widget=extras.SelectDateWidget(years = range(1995, 1900, -1)), label='What is your Date of Birth?', required = False)
#What is your current relationship status?
SINGLE = 'Single'
INARELATIONSHIP = 'In a relationship'
MARRIED = 'Married'
DIVORCED = 'Divorced'
SEPARATED = 'Separated'
WIDOWED = 'Widowed'
RELATIONSHIP = (
("", "----------"),
(SINGLE, "Single"),
(INARELATIONSHIP, "In a relationship"),
(MARRIED, "Married"),
(DIVORCED, "Divorced"),
(SEPARATED, "Separated"),
(WIDOWED, "Widowed"),
)
relationship = forms.ChoiceField(widget=forms.Select(), choices=RELATIONSHIP, initial= "", label='What is your relationship status?', required = False)
class SurveyFormB(forms.Form): #Internet usage questions
(second page questions here)
....
....
如下图所示,这些工具似乎工作正常
每个SessionWizardView都有一个get\u context\u data
,用于捕获和存储从调查表单的一页到下一页的数据,以及done
方法。我没有显示完整的get_context_data
,因为它很长
视图.py
class SurveyWizardOne(SessionWizardView):
def get_context_data(self, form, **kwargs):
context = super(SurveyWizardOne, self).get_context_data(form, **kwargs)
....
....
def done(self, form_list, **kwargs):
return render(self.request, 'Return_to_AMT.html', {
'form_data': [form.cleaned_data for form in form_list],
})
数据库连接:
我的Django站点连接到settings.py中的MySQL数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_db',
'USER': 'root',
'PASSWORD': '************',
'HOST': '127.0.0.1',
#'PORT': '',
}
}
您必须编写models.py或设置一个特定的数据库,以便访问该数据库。这两件事在这里似乎都做不到 官方文件中的这些链接应有助于:
PS -您应该考虑使用Django 1.8。它甚至有更好的文档记录,更易于使用。另外,将代码从一个Django版本移植到下一个版本非常容易。仅仅是简单的复制粘贴而已。
我不知道你为什么认为有什么不对。您还没有将任何表单结果保存到数据库中,事实上,您甚至还没有创建任何模型来保存它。您正在查看的数据是一个序列化字典,Django使用它在表单页面之间保持用户状态。因此,我只是错过了将数据保存到数据库的阶段。你有什么建议吗?forms.py是否应将其发送到数据库?如果是这样,怎么办?或者我应该尝试将数据获取到models.py并以这种方式将其添加到数据库中?