1、问卷的保存按钮
前者通过ajax把数量作过来后端处理多少,然后回给前端
2、对问卷做答
首先用户展开登录,验证
准:1、只有本班的学童才对问卷做答
      2、已经到了之匪可知更访问
      
于前端显示的体制
    显示当前问卷的问题
    – 你对近期之攻有怎样观点、。?
      1 2 3 4 5 。。 10
    – 路宁女朋友有提议?
            文本…
    – 路宁选择帽子颜色?
            A. 绿色    B.翠绿
            C. 墨绿    D.深绿色

问卷的保存按钮涉及到之知识点:
集的操作:
 

   s = [1,4,5,8]
    s2 = [2,4,7,8,6]
    print(set(s).difference(s2))  #做差集,在s中找和s2不同的元素  {1, 5}
    print(set(s2).difference(s))  #做差集,在s2中找和s不同的元素  {2, 6, 7}
    print(set(s)-set(s2))  #这种方式和上面的一样   {1, 5}
    print(set(s2)^set(s))  #交集   {1, 2, 5, 6, 7}
    print(set(s2)|set(s))   #并集  {1, 2, 4, 5, 6, 7, 8}

思路分析:
    拿到前端的数目,像下这种格式的
    如果是json格式发之,注意要于request.body中取值。
     ajax_post_list = [
                {
                    ‘id’: 2,
                    ‘caption’: “鲁宁爱不是番禺??”,
                    ‘tp’: 1,

                },
                {
                    ‘id’: None,
                    ‘caption’: “八层哥肾好不好?”,
                    ‘tp’: 3
                },
                {
                    ‘id’: None,
                    ‘caption’: “鲁宁脸于不起?”,
                    ‘tp’: 2,
                    “options”: [
                        {‘id’: 1, ‘name’: ‘绿’, ‘score’: 10},
                        {‘id’: 2, ‘name’: ‘翠绿’, ‘score’: 8},
                    ]
                },
            ]
    前端的数据以及数据库的数据开展较,
        – 前端有后端没有要加上
        – 前端没有后端有使去除
        – 前端有后端也出要翻新
    
  
 #数据库被的那些问题id需要去(数据库里发前端没有的数量删除)采用聚合操作,求差集
    del_id_list = set(question_id_list).difference(post_id_list) 
#del_id_list就是如去的id
    循环前端发过来的数额,得到数码依次展开比,
    #看清前端传进的id不以数据库中,就证明要新增
    #使犯过来的ty_id是2(单选)的时光,也要是新增
    #不然即使更新
      
 #创新的时段注意为要是判断一下ty_id,如果没底口舌就是的吧数据库的删除了,如果有些话
        #即便先行吧数据库的去了,然后创建创新

问卷的问卷做答涉及到的知识点:
    1、创建类的鲜种艺术
    方式一:
        class Foo(object):
            x1=5
            def func(self,arg):
                return arg
    方式二:
        Foo = type(‘Foo’,(object,),{“x1″:5,”func”:lambda x:x})
      
 有跟Python中一切均对象,所以累啊是一个靶,它是type的对象,所以这里就是可实例化
      
 这里的老三只参数分别是,:类名,继承的类,字典里面可以放静态属性也可拓宽方法等。
        
    2、split切割
    s = “aaaa_ssss_ddd”
    print(s.split(“_”))   #[‘aaaa’, ‘ssss’, ‘ddd’]
    print(s.split(“_”,1))  #[‘aaaa’, ‘ssss_ddd’]  
#这边的参数1代表式按第一独下划线分割
    print(s.rsplit(“_”,1))  #[‘aaaa_ssss’, ‘ddd’] 
#rsplit代表从右侧的率先单下划线分割
    
    3、Form前端循环
        views.py
        class LoginForm(Form):
            name = …
            pwd = …
        
        def login(request):
            form = LoginForm()
            return render(request,”login.html”)
            
        login.html
            不用循环实现之、
            <div>
                {{ form.name }} {{ form.errors.name.0 }}
                {{ form.aee }} {{ form.errors.age.0 }}
            </div>
            
            用循环实现的、
            <div>
                {% for item in form %}
                    {{ item.label }}{{ item }}{{ item.errors.0 }}
                    input框前的仿—-每个input框—-错误提示
                {% endfor %}
            </div>
    4、自定义Form验证规则
        def func(val):
                if len(val) < 15:
                    raise ValidationError(‘你不过不够了’)
                    
        
        class LoginForm(Form):
            name1和name2是一律的,只是鲜栽象征的措施
            name1 = fields.CharField(label=’xxx’,
widget=widgets.Textarea, validators=[RegexValidator(regex=””),])
            name2 = fields.RegexField(label=’xxx’,
widget=widgets.Textarea, regex=”xxx”)
            
            如果地方的证实不满足你需要的时光,可以据此当下等同种植。
            注意: validators=[func,
]此的func函数不加(),Form会自动找到这个函数去运作它们
            name3 = fields.CharField(label=que.caption,
widget=widgets.Textarea, validators=[func, ])
            
            也足以协调去定义钩子函数去证明
            def clean_name1(self,val):
                return val
    
    
    
具体操作:
首先用户得事先登录
#优先判断什么人方可答卷
查看时报到用户是否是设评的班级之学员
models.Student
若是无是不怕归无权访问,

#是否已经交了手上问卷的答案

#来得时问卷下的有的问题
    
    
    
    
    
    
    
    

相关文章

网站地图xml地图