栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Django和Ajax-我该怎么办?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django和Ajax-我该怎么办?

这是使用Dajax / Dajaxice的方法,这是为了在Django中简化AJAX:

  1. 根据文档安装Dajaxice和Dajax。文档似乎没有提及它,但是您也可以使用
    pip
    ,即
    pip install django-dajaxice

    pip install django-dajax

获取库。无论如何,请确保遵循doc说明安装Django应用,并将必需的Javascript库加载到中

gallery.html
。(请注意,您需要安装jQuery或类似的JS框架才能使Dajax正常工作。)

  1. 在中
    gallery.html
    ,将
    items
    categories
    呈现为HTML 的部分隔离。将此部分复制到一个单独的Django模板中,例如,
    gallery_content.html
    然后用特定ID
    gallery.html
    的空白替换该部分
    <div>
    ,例如
    <div id="gallery-content"></div>

您正在做的是

#gallery-content
为HTML 创建一个占位符,稍后将通过Dajaxice调用为每个页面生成HTML。

  1. 现在,在中的其他位置
    gallery.html
    ,为用户创建一种告诉您要转到哪个页面的方法,例如
        <input id="page-number">    <button onclick="Dajaxice.myapp.gallerypages_content(Dajax.process, {'page': document.getElementById('page-number').value})">Go to page</button>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

Javascript

onclick
代码(每当用户单击按钮元素时都会调用)执行两件事:(1)获取
#page-number
输入元素的值,以及(2)
gallerypages_content
异步将其发送到Django
视图,即没有正常的网络通过
Dajaxice.myapp.gallerypages_content
Javascript调用加载浏览器页面。请注意,
myapp
应将其替换为Django应用的名称。

  1. 最后,您需要创建
    gallerypages_content
    视图-这是现有
    gallerypages
    视图的变体,已修改以与Dajaxice / Dajax一起使用。Dajaxice进行了硬编码以在中查找此类视图
    ajax.py
    ,因此请
    ajax.py
    在您的
    myapp
    文件夹中创建如下:
        from django.template.loader import render_to_string    from dajax.core import Dajax    from dajaxice.decorators import dajaxice_register    @dajaxice_register    def gallerypages_content(request, page):        page = int(page)        # ... pre to calculate itemsList and categories as before ...        html = render_to_string('gallery_content.html',          {'items': itemsList,'categories': categories,},context_instance = RequestContext(request))        dajax = Dajax()        dajax.assign('#gallery-content', 'innerHTML', html)        return dajax.json()

这就是上面的代码所做的:(1)将

page
参数(现在是字符串)(即
#page-number
输入元素的原始字符串值)转换为Python整数;(2)进行与之前相同的计算,得到
itemsList
categories
;
(3)用于
render_to_string
呈现
gallery_content.html
为HTML字符串,而不是普通的Django
HTTP响应;(4)使用Dajax API创建指令以将HTML注入
#gallery-content
div;(5)作为视图的响应,并以JSON格式返回这些指令。
onclick
处理程序中的Dajaxice调用实际上将接收这些指令并对其执行操作(严格来说,是由
Dajax.process
回调执行此操作),从而导致HTML出现。请注意,您需要
gallerypages_content
使用
@dajaxice_register

-有助于Dajaxice将所有内容挂钩。

我还没有具体测试过任何一项,但这是基于我如何让Dajaxice / Dajax为我工作,我希望它对您有用-至少可以让您入门!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449034.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号