## 前后台交互的一些方法:
```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接口函数的返回值,然后可以通过添加逻辑,指定跳转页面!(即可以只接受不跳转!)
```