Python 为什么Django SessionWizardView调查应用程序数据没有以可用格式显示在MySQL数据库中?

Python 为什么Django SessionWizardView调查应用程序数据没有以可用格式显示在MySQL数据库中?,python,mysql,django,Python,Mysql,Django,我已经用一个数据库构建了一个多页面的调查应用程序,但是我在如何将通过调查表单提交的数据保存到我的MySQL数据库django_db中遇到了一些问题。也就是说,我根本不知道或不理解正在被拯救的是什么。这是我第一次构建这样的应用程序,甚至是使用数据库,请原谅我的无知 我的问题是,当我通过phpMyAdmin查看我的数据库时,没有任何东西可以识别为来自我的应用程序,所以我不知道从哪里开始 我相信SessionWizardView中的数据应该存储在django_session表中,但是当我检查它时,它看

我已经用一个数据库构建了一个多页面的调查应用程序,但是我在如何将通过调查表单提交的数据保存到我的MySQL数据库
django_db
中遇到了一些问题。也就是说,我根本不知道或不理解正在被拯救的是什么。这是我第一次构建这样的应用程序,甚至是使用数据库,请原谅我的无知

我的问题是,当我通过phpMyAdmin查看我的数据库时,没有任何东西可以识别为来自我的应用程序,所以我不知道从哪里开始

我相信SessionWizardView中的数据应该存储在
django_session
表中,但是当我检查它时,它看起来像胡言乱语

这是一份
会话\u数据的副本
-这就是我要看的吗

ZTEwNWUzZmI4NjA5MmQ3Nzk2MDQ1MWY3YzE2MjYxZWZjNDJmODQ3Yjp7ImVpZ2h0X2ltYWdlIjoiUDFEOS5qcGciLCJwYXRoX3R3b19pbWFnZXMiOltdLCJwYXRoX29uZV9pbWFnZXMiOltdLCJ0aGlyZF9pbWFnZSI6IlA5RDguanBnIiwiaW1hZ2VzIjpbXSwid2l6YXJkX3N1cnZleV93aXphcmRfb25lIjp7InN0ZXBfZmlsZXMiOnt9LCJzdGVwIjpudWxsLCJleHRyYV9kYXRhIjp7fSwic3RlcF9kYXRhIjp7fX0sInNpeHRoX2ltYWdlIjoiUDVENC5qcGciLCJmb3VydGhfaW1hZ2UiOiJQNEQzLmpwZyIsImZpZnRoX2ltYWdlIjoiUDJEMS5qcGciLCJ3aXphcmRfc3VydmV5X3dpemFyZF90d28iOnsic3RlcF9maWxlcyI6e30sInN0ZXAiOm51bGwsImV4dHJhX2RhdGEiOnt9LCJzdGVwX2RhdGEiOnt9fSwicGF0aF90aHJlZV9pbWFnZXMiOlsiUDNEMS5qcGciLCJQNEQyLmpwZyIsIlA1RDMuanBnIiwiUDZENC5qcGciLCJQN0Q1LmpwZyIsIlA4RDYuanBnIiwiUDlENy5qcGciLCJQMUQ4LmpwZyIsIlAyRDkuanBnIl0sImluc3RydWN0aW9uX3Rhc2tfb25lX2ltYWdlcyI6WyJJVDFBLmpwZyIsIklUMUIuanBnIiwiSVQxQy5qcGciXSwiZmlyc3RfaW1hZ2UiOiJQNkQ1LmpwZyIsInNlY29uZF9pbWFnZSI6IlA4RDcuanBnIiwic2V2ZW50aF9pbWFnZSI6IlAzRDIuanBnIiwic2xpZGVyX0RWX3ZhbHVlcyI6W10sImluc3RydWN0aW9uX3Rhc2tfdHdvX2ltYWdlcyI6WyJJVDJBLmpwZyIsIklUMkIuanBnIiwiSVQyQy5qcGciXSwibmludGhfaW1hZ2UiOiJQN0Q2LmpwZyIsIndpemFyZF9zdXJ2ZXlfd2l6YXJkX3RocmVlIjp7InN0ZXBfZmlsZXMiOnsiMSI6e30sIjAiOnt9LCIyIjp7fX0sInN0ZXAiOiIzIiwiZXh0cmFfZGF0YSI6e30sInN0ZXBfZGF0YSI6eyIxIjp7IjEtbm90aGluZyI6WyIiXSwic2xpZGVyX3ZhbHVlIjpbIisxMDAiXSwiY3NyZm1pZGRsZXdhcmV0b2tlbiI6WyIwblNZWTFuZkZ6QzdBb0R0UFlwZkpyc1NySGhGRWhONyJdLCJzdWJtaXQiOlsiTmV4dCJdLCJzdXJ2ZXlfd2l6YXJkX3RocmVlLWN1cnJlbnRfc3RlcCI6WyIxIl19LCIwIjp7IjAtbm90aGluZyI6WyIiXSwiY3NyZm1pZGRsZXdhcmV0b2tlbiI6WyIwblNZWTFuZkZ6QzdBb0R0UFlwZkpyc1NySGhGRWhONyJdLCJzdXJ2ZXlfd2l6YXJkX3RocmVlLWN1cnJlbnRfc3RlcCI6WyIwIl0sInN1Ym1pdCI6WyJOZXh0Il0sInNsaWRlcl92YWx1ZSI6WyIrMTAwIl19LCIyIjp7ImNzcmZtaWRkbGV3YXJldG9rZW4iOlsiMG5TWVkxbmZGekM3QW9EdFBZcGZKcnNTckhoRkVoTjciXSwiMi1ub3RoaW5nIjpbIiJdLCJzdXJ2ZXlfd2l6YXJkX3RocmVlLWN1cnJlbnRfc3RlcCI6WyIyIl0sInN1Ym1pdCI6WyJOZXh0Il19fX19
问题:
  • 有人能看一下我下面的流程/代码,告诉我我是否 缺少一个步骤,或者代码中没有包含某些内容

  • 我是不是在MySQL端遗漏了什么?我应该创造吗 特定的表或以某种方式对其进行自定义,以便存储数据 以可用/可读的格式

  • 我找对地方完成调查了吗 应用程序数据?SessionWizardView在哪里存储/发送

  • 这是我的第一个数据库应用程序,再次感谢您的患者

    过程:
    • 我通过 终端
      创建数据库django_数据库和其中的表是
      当我运行命令
      python manage.py syncdb
      而不是 我不接触数据库

    • 我可以使用SessionWizardView在我的 本地计算机和公用服务器上的。没有错误,这是一个很好的例子 一切正常

    • 我已经设置了phpMyAdmin,可以看到
      django\u db
      数据库。然而 我真的不知道我在看什么

    代码: forms.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],            
            }) 
    
    调查中的大部分问题相对简单,如:

    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并以这种方式将其添加到数据库中?