day59:前后台交互的一些方法、及注意事项:

## 前后台交互的一些方法:

```py
1. 前后台交互的时候, 必须使用json格式数据
后台返回的格式:res["code"] = 10000
              res['data'] = "success"
第一种: return HttpResponse(json.dumps(res))
        前台js反序列化:res = JSON.parse(data);
        前台js的序列化:JSON.stringify(res)
第二种方式:
        return JsonResponse((res)) 
         相当于使用了json.dumps()
        前台:console.log(data) ## data 已经反序列化好的字典
跳转两种方式:
            widnow.location.href = '/classes/';
            window.location.reload();  # 刷新当前页面
            
注意!!!!:
1. css 如果想要绑定多个相同的标签的时候, 不要用id选择器, 要用class类别选择器
2. DOM  ===》 Document Object Modal
    <a href="/del_class/?id={{ item.id }}"  onclick="return func()">删除</a>
    onclick="return func()",这是DOM0的方式!可以将双引号内的内容理解为一个函数,只有函数的return,没有函数名、函数体、参数的一个函数。
    优点:方便快捷。
    缺点:移植性差,可读性差,逻辑内容有限。
    
```

## 表单的一些使用方法:

```python
对于下拉框:select的例:
 <select name="classid" id="">
  {% for item in classes %}
     {% if item.id == student.cid %}
   <option value="{{ item.id }}" selected>{{item.name }}</option>
     {%else%}
     <option value="{{ item.id }}" >{{ item.name }}</option>
      {% endif %}
   {% endfor %}
  </select>
说明:可以通过加判断,来确定下拉框的默认值,对于客户不同的选择,提取标签的一个“唯一特征值”,判断这个值,然后给出默认值。
注意!!!:select的name值,是后台获取数据的依据,它的value值是option标签对应的value值!!!,select没有value属性值。

遇到的问题:
form标签向后台提交数据和ajax同时提交,ajax将失效。
另外form标签提交数据后,后台返回数据,过程是:form提交的页面,将根据后台url接口指向的页面跳转,如果是本页面将刷新。(因为它没有接受的地方)
ajax提交数据:不会主动跳转页面,因为,ajax有个success方法来接受后台url接口函数的返回值,然后可以通过添加逻辑,指定跳转页面!(即可以只接受不跳转!)

```

 

posted @ 2019-07-11 21:33  Python-Man  阅读(273)  评论(0编辑  收藏  举报