一个Django的小例子(静态路径、url配置、ajax数据传递)
来源:互联网 发布:mac的option键 编辑:程序博客网 时间:2024/05/21 04:01
1、静态路径设置(访问本地的js/css文件)
如果不设置的话,<script src="path">中的path会自动变为url请求,即http://host/path,这样的话本地文件就访问不到了
STATIC_URL = '/static/'STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static') ,)STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder',)
这样之后在程序中,就可以i这么写了<script src="{{STATIC_URL}}path">
2、url配置
(a)基本结构:
from django.conf.urls import patterns, include, urlurlpatterns = patterns('', url("匹配url的正则表达式",include("其他包含urlpatterns的py文件")), ..................)
正则表达式的匹配成功应该分为两种情况,一种是待匹配的字符串是否完全符合某种模式,另一种是待匹配的字符串是否包含符合当前模式的子字符串,比如模式串a.*b,"axxxxxxxxxxb"可以与它完全匹配(第一种情况),当然也包含符合该模式的子串,而"xxaxxxbxxx"就不符合第一种情况了,但在第二情况下也算是匹配成功。此处的url匹配以第二种为标准,假如你写的url的正则表达式是空字符串“”,那么任何发送过来请求的url都会匹配成功,这样就没什么意义了。
为了精确匹配,可以借助符号^,$,如果我们用尾部不是$的模式’^hello/’,那么任何以/hello/开头的URL将会匹配,例如:/hello/foo 和/hello/bar,而不仅仅是/hello/。类似地,如果我们忽略了尖号(^),即’hello/$’,那么任何以hello/结尾的URL将会匹配,例如:/foo/bar/hello/。如果我们简单使用hello/,即没有^开头和$结尾,那么任何包含hello/的URL将会匹配,如:/foo/hello/bar,在含有include的url配置中不要加$。
(b)解析过程:
从第一个斜杠后的第一个字母开始匹配,第一个斜杠在url解析时会被忽略,除此之外的每一个斜杠都会参与解析,包括最后一个,如下例:
urls.py:url(r'^home/',include('MyApp')
从客户端发送过来的url请求,如http://127.0.0.1:8000/home/index,其解析过程为:首先忽略掉http://127.0.0.1:8000/,解析home/index,home/被urls.py截取,剩下的index扔给MyApp下的_ _init_ _.py去解析
3、json数据的传递与解析
(a)解析来自客户端的json
_dict=request.REQUESTdata=json.loads(_dict['key'],'utf-8')这样能获取的前提是,js中传递过来的json数据经过JSON.stringify的处理
(b)返回本地数据到客户端
rst=json.dumps(ret)if type(rst) in [types.TupleType,types.ListType]: content_type,body=rst return HttpResponse(body,content_type)return HttpResponse(rst)注:客户端无须做额外解析,可直接访问,如数组,字典等,都可以直接当作数组、字典看
4、ajax中的url
若不以斜杠开始,URL为将当前路径中最后的斜杠后的内容替换为当前url,若最后斜杠后没有其他内容,则直接连接
若有斜杠,则url为域名+当前url的形式
5、如何通过模板变量访问setting.py中的预定义的变量
如果不想特别指明的话,直接在render_to_response中传递locals即可,否则就认为构造字典进行传递,如要在模板中访问settings.py中的STATIC_URL,代码如下:
from DjangoDemo.settings import STATIC_URLdef index(request): _dict={} _dict['STATIC_URL']=STATIC_URL return render_to_response('index.html',_dict,context_instance=RequestContext(request))
locals是否应该使用呢?请参考:http://stackoverflow.com/questions/1901525/django-template-and-the-locals-trick
- 一个Django的小例子(静态路径、url配置、ajax数据传递)
- 配置Django项目的静态文件路径
- Django中静态文件路径的配置
- Django配置静态文件路径
- 一个简单的AJAX的小例子
- 初学ajax的一个小例子
- 写一个ajax例子的小问题
- ajax获取新闻数据的小例子
- django中url,静态文件,POST请求的配置
- django 配置对于静态文件访问的路径
- django 静态文件配置 js url 写法
- Django小例子 – 模型数据的模板呈现
- 一个栈数据越界的小例子
- ajax的小例子
- AJAX的小例子
- ajax的小例子
- ajax的小例子
- Django中配置静态文件路径
- 块设备驱动程序设计
- TF-IDF与余弦相似性的应用(二):找出相似文章
- iOS 绘图
- CCRender使用
- 读取EXCEL文件并查询
- 一个Django的小例子(静态路径、url配置、ajax数据传递)
- Java For-each 的实现原理
- 转载]指示电量不足的简单电路设计
- HDU 2876 Ellipse, again and again(数学题)
- 使用supervisor提高nodejs调试效率
- 九度 1104 以及 辗转相除法的原理f昂发
- STL算法学习
- mysql 压力测试脚本
- 云享 文档协同,开启新的文档协作模式