django识别页面

模版
修改 TEMPLATES 中的 DIRS 为 [BASE_DIR, “/templates”,]
ps:如果本来就是不用改

通过render函数把数据传输给前端

render(request,静态网页名字,数据包)

  1. context = {}
  2. context['hello'] = 'Hello World!'
  3. return render(request, 'runoob.html', context)

urls文件
相当于把静态页面放在方法中管理(设置访问路径),只有管理到了静态页面才能接收到方法的数据
image.png
image.png

前端取值

数据包是基于花括号来取值,元组格式。

列表格式

通过.索引的格式来获取目标值

  1. <p>{{ views_list.0 }}</p>

json格式

.keyName 通过键值对的方式来去值

跳转

  1. return redirect('/login/')

过滤器

过滤器就是在数据显示之前对数据进行定制化处理,例如大小写等等。通过通道符号 | 来命名语法
格式 {{ 变量名 | 过滤器:可选参数 }}
https://www.cnblogs.com/baili-luoyun/p/11093977.html

  1. {{"1234"|length}}

循环遍历

{% for i in listvar %}{% endfor %} 的中间是作用域 {% empty %} 可以理解为if空的一个函数,根据python缩进的特性。
in后调用的key不需要再写花括号,直接写key名就可以(前提是二级花括号的情况)
作用域中的调用都是用两个花括号调用,例如 {{ i }} 等等

  1. {% for i in listvar %}
  2. 作用域
  3. {% empty %}
  4. 空空如也~
  5. {% endfor %}

嵌套for循环

  1. {% for athlete in athlete_list %}
  2. <h1>{{ athlete.name }}</h1>
  3. <ul>
  4. {% for sport in athlete.sports_played %}
  5. <li>{{ sport }}</li>
  6. {% endfor %}
  7. </ul>
  8. {% endfor %}

for循环内置参数
调用格式:{{ forloop.counter0 }}

  1. forloop.counter 按照索引号起始值为1开始加
  2. forloop.counter0 按照索引号起始值为0开始加

前后端分离方案

后端

  1. json.dumps({'msg': 'admin'}

前端

  1. data = JSON.parse(data);
  2. console.log(data["msg"]);

跨域

前后端传值存在跨域问题的话,需要以下注解来对接口进行跨域配置,配置了跨域的接口,
@csrf_exempt

后端获取值

request.POST.get(``'id'``)

后端返回值

return ``HttpResponse(json.dumps({``"state"``: ``1``}))

init module

后端json字符串转json

json.loads(json_row)