Django添加js
来源:互联网 发布:jetbrains软件 编辑:程序博客网 时间:2024/05/20 07:15
我们之前完整的搭建了一个app,同时能够使数据库中的数据在前台页面中显示出来。那么,我们如何将用户在前台页面中的操作返回给后台呢?
这篇文章展示一个demo
在Django搭建第一个应用
的基础上,我们继续。
引入js库
我们写页面很多时候需要外部js库的支持,那么这些文件应该放在哪里呢?又该如何配置呢?
- 建立static文件夹:
注意上图里面static文件夹的路径,再在里面添加js文件夹,js文件夹里面就可以放我们需要的js文件了。 - 配置相关文件
接下来,想要使用这些js我们还需要进行一些配置:
settings.py
STATIC_URL = '/static/'STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'),)
templates/hello.html
{% load staticfiles %}#这句添加在html文件的最上面<script src="{% static "js/jquery-3.1.1.min.js" %}" type="text/javascript"></script>#注意看这里面的script标签和我们之前的script标签之间的不同
到这基本上我们的配置就结束了。
其实我也不是很懂jQuery,昨天看师兄操作看的我眼花缭乱,估计还是得以后自己用的时候慢慢体会,我先把过程记录下来。
先说一下我们想要实现什么。
我们在后台建立了一个字典(当然这个是demo,我们以后上线的时候肯定是要在数据库里面调用这些数据的):
{'1':1234,"2":4321}
在前端页面放了一个下拉框,想要在选1的时候,页面显示1234,在选2的显示4321。
hello.html
{% load staticfiles %}<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script src="{% static "js/jquery-3.1.1.min.js" %}" type="text/javascript"></script></head><body>{{hello}}<select id="lineno"> <option>1</option> <option>2</option></select></body><div id="div"></div><script type="text/javascript"> $("#lineno").change(function(){ var lineno = $("#lineno").val(); $.get("/app1/api?lineno=" + lineno,function(data){ $("#div").html(data); }) });</script></html>
我对这段代码的理解:
<select>建立一个下拉框,两个选项<div>建立一个显示结果的div下面这段script:就是在下拉框被改变的时候,我们获取用户选择的下拉框中的值,之后拼接一个链接:"/app1/api?lineno=" + lineno,并用get方法得到这个链接里面的结果,返回到我们的div中显示
上面拼接的链接就是我们接下来要说的内容,先上一个结果的截图:
我们在这个页面,改变lineno的值,就可以根据这个key找到对应的后台数据中的value
那么这个链接我们是怎么处理的呢?
首先得有视图V,修改app1/views.py
from django.http import HttpResponsefrom models import myStudentfrom django.shortcuts import renderdef first_page(request): student_list = myStudent.objects.all() student_str = map(str, student_list) context = {} context['hello'] = ''.join(student_str) # context['hello'] = 'hello yibo' return render(request, 'hello.html', context)def api(request): mmap = {'1': 1234, "2": 4321} lineno = request.GET.get('lineno', '1') return HttpResponse('{volume:' + str(mmap[lineno]) + '}')
注意到我们在上面的页面上添加了api函数,我理解的是通过request.GET.get函数,得到用户输入的参数,也就是?后面的参数,之后用HttpResponse返回一个页面的结果
那么根据我们django框架的设计理念,还需要一个URL和api函数之间的映射:
app1/urls.py
from django.conf.urls import url,includefrom django.contrib import adminfrom views import first_pagefrom views import apiurlpatterns = [ url(r'^$', first_page), url(r'api/', api)]
到这里就结束了,贴一下结果:
我们在下拉框里面选择2的时候,显示的是4321
至此,我们前端和后台就顺畅的连接在了一起
具体细节还需要在之后的工程里慢慢体会
接下来想要学一下jQuery
- Django添加js
- Django添加JS,CSS,图片等外部文件的方法
- Django动态添加model
- Django添加数据库字段
- Django添加数据库字段
- django添加admin管理
- [Django]添加robots.txt
- Django -> 添加ModelAdmin.date_hierarchy
- django添加ldap认证
- python添加django插件
- django 添加数据
- Django 添加背景图片
- Django博客开发(九)—添加多说评论和JS日历
- django 下 js post
- Django 添加用户注册功能
- Django站点添加 favicon.ico
- python django 添加前台页面
- cloudfoundry添加Django的支持
- 滑雪(深搜与动归)
- HDU-1272 小希的迷宫 (并查集)
- 算法概论习题 8.22 NP-完全问题证明
- C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素”
- 【matlab】freqz函数的使用(一)
- Django添加js
- 【论坛项目】简单的论坛小项目-麻雀虽小,五脏俱全
- CV界的明星人物们和他们的主页地址
- Android杂谈(21)+Java随笔(4):注解(下)分析ButterKnife
- C语言main()主函数执行完毕后是否会再执行一段代码
- android studio异常处理之[Error: com.android.ide.common.process.ProcessException]
- 基于ssm框架正式环境echarts图表的使用
- TensorFlow使用基础(Basic Usage)
- -mtime+1