首页 > 其他 > 详细

django1.6 django-dajaxice的安装配置.

时间:2014-03-12 17:48:55      阅读:657      评论:0      收藏:0      [点我收藏+]

django-dajaxice的安装配置.

在使用django1.6做项目时,用到了界面上的ajax请求, 由于django的csrf的原因 使用传统的jquery的ajax ,非常不方便,

强大的django,怎么能没有解决方法,这里提供一个比较好的插件, django-dajaxice

下面讲述下关于这个插件的安装配置:

1,安装:

使用pip安装:

 sudo pip install django_dajaxice

2.配置settings.py:

2.1,在你的project中的settings.py 中的INSTALLED_APPS中加入dajaxice

bubuko.com,布布扣
INSTALLED_APPS = (
        django.contrib.auth,
        django.contrib.contenttypes,
        django.contrib.sessions,
        django.contrib.sites,
        dajaxice,
        ...
)
bubuko.com,布布扣

2.2,在TEMPLATE_LOADERS中增加‘django.template.loaders.eggs.Loader‘,

 

TEMPLATE_LOADERS = (
    django.template.loaders.filesystem.Loader,
    django.template.loaders.app_directories.Loader,
    django.template.loaders.eggs.Loader,
)

2.3, 在TEMPLATE_CONTEXT_PROCESSORS 中确认有 django.core.context_processors.request

bubuko.com,布布扣
TEMPLATE_CONTEXT_PROCESSORS = (
    django.contrib.auth.context_processors.auth,
    django.core.context_processors.debug,
    django.core.context_processors.i18n,
    django.core.context_processors.media,
    django.core.context_processors.static,
    django.core.context_processors.request,
    django.contrib.messages.context_processors.messages
)
bubuko.com,布布扣

2.4,增加 dajaxice.finders.DajaxiceFinder 在 STATICFILES_FINDERS:

STATICFILES_FINDERS = (
    django.contrib.staticfiles.finders.FileSystemFinder,
    django.contrib.staticfiles.finders.AppDirectoriesFinder,
    dajaxice.finders.DajaxiceFinder,
)

 

ps:TEMPLATE_LOADERS和TEMPLATE_CONTEXT_PROCESSORS 在默认的settings.py配置里没有,这里直接粘贴复制就行

 

3.配置URLS

3.1 导入一下models
from dajaxice.core import dajaxice_autodiscover, dajaxice_config
dajaxice_autodiscover()

   3.2 增加url

urlpatterns = patterns(‘‘,
    ...
    url(dajaxice_config.dajaxice_url, include(dajaxice.urls)),
    ...
)

ps:

If you aren’t using django.contrib.staticfiles, you should also enable it importing:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns

and adding this line to the bottom of your urls.py:

urlpatterns += staticfiles_urlpatterns()

 

4.配置模版

  

bubuko.com,布布扣
{% load dajaxice_templatetags %}

<html>
  <head>
    <title>My base template</title>
    ...
    {% dajaxice_js_import %}
  </head>
    ...
</html>
bubuko.com,布布扣

 

5,测试

在项目下建立一个ajax.py,

import json

def sayhello(request):
    return json.dumps({message:Hello World})

然后在模版html中:

bubuko.com,布布扣
            <script>
                        function my_callback(data){
                            alert(data.message);
                        }
                    </script>
                    <input type="button" onclick="Dajaxice.oak.sayhello(my_callback)" value="Get message from server!">
bubuko.com,布布扣

 

 

在这个过程中出现的问题以及解决方法:

1.web界面报错:ImportError:No module named defaults

Exception Value:
No module named defaults
Exception Location: /usr/local/lib/python2.7/dist-packages/dajaxice/urls.py in <module>, line 1

 

 

这是因为在dajaxice的源代码中导入有误,这个问题我在github上issue 看到解决方法:

将dajaxice源代码中/usr/local/lib/python2.7/dist-packages/dajaxice/urls.py文件中的

from django.conf.urls.defaults import * 

改为:

from django.conf.urls import * 

可解决问题.

2.onclick="Dajaxice.oak.sayhello(my_callback)" 这个oak哪里的

看我下面的项目部分结构图:

oakcloud/
├── db.sqlite3
├── manage.py
├── oak
│   ├── account.py
│   ├── account.pyc
│   ├── admin.py
│   ├── admin.pyc
│   ├── ajax.py
│   ├── ajax.pyc
│   ├── classes.py
│   ├── classes.pyc
│   ├── forms.py
│   ├── forms.pyc
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── models.py
│   ├── models.pyc
│   ├── network.py
│   ├── network.pyc
│   ├── plugins
│   │   ├── __init__.py
│   │   ├── __init__.pyc
│   │   └── network
│   │   ├── __init__.py
│   │   ├── __init__.pyc
│   │   ├── methods.py
│   │   ├── methods.pyc
│   │   ├── models.py
│   │   └── models.pyc
│   ├── tests.py
│   ├── urls.py
│   ├── urls.pyc
│   ├── utils.py
│   ├── utils.pyc
│   ├── views.py
│   └── views.pyc
├── oakcloud
│   ├── __init__.py
│   ├── __init__.pyc
│   ├── settings.py
│   ├── settings.pyc
│   ├── urls.py
│   ├── urls.pyc
│   ├── wsgi.py
│   └── wsgi.pyc
├── static

 

 

 

至此,对django-dajaxice的配置就完成了,能够正常使用了,如果大家想了解更多有关django-dajaxice的功能,可以访问它的官方网站获取更多内容.附:http://www.dajaxproject.com/#dajaxice

django1.6 django-dajaxice的安装配置.,布布扣,bubuko.com

django1.6 django-dajaxice的安装配置.

原文:http://www.cnblogs.com/Jghost/p/3596604.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!