django之jquery完成ajax
生活随笔
收集整理的這篇文章主要介紹了
django之jquery完成ajax
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用Ajax
- 使用視圖通過上下文向模板中傳遞數據,需要先加載完成模板的靜態頁面,再執行模型代碼,生成最張的html,返回給瀏覽器,這個過程將頁面與數據集成到了一起,擴展性差
- 改進方案:通過ajax的方式獲取數據,通過dom操作將數據呈現到界面上
- 推薦使用框架的ajax相關方法,不要使用XMLHttpRequest對象,因為操作麻煩且不容易查錯
- jquery框架中提供了$.ajax、$.get、$.post方法,用于進行異步交互
- 由于csrf的約束,推薦使用$.get
- 示例:實現省市區的選擇
- 最終實現效果如圖:
引入js文件
- js文件屬于靜態文件,創建目錄結構如圖:
修改settings.py關于靜態文件的設置
STATIC_URL = '/static/' STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), ]在models.py中定義模型
class AreaInfo(models.Model):aid = models.IntegerField(primary_key=True)atitle = models.CharField(max_length=20)aPArea = models.ForeignKey('AreaInfo', null=True)生成遷移
python manage.py makemigrations python manage.py migrate通過workbench向表中填充示例數據
- 參見“省市區.sql”
- 注意將表的名稱完成替換
在views.py中編寫視圖
- index用于展示頁面
- getArea1用于返回省級數據
- getArea2用于根據省、市編號返回市、區信息,格式都為字典對象
在urls.py中配置urlconf
from django.conf.urls import url from . import viewsurlpatterns = [url(r'^$', views.index),url(r'^area1/$', views.getArea1),url(r'^([0-9]+)/$', views.getArea2), ]主urls.py中包含此應用的url
from django.conf.urls import include, url from django.contrib import adminurlpatterns = [url(r'^', include('ct1.urls', namespace='ct1')),url(r'^admin/', include(admin.site.urls)), ]定義模板index.html
- 在項目中的目錄結構如圖:
- 修改settings.py的TEMPLATES項,設置DIRS值
- 定義模板文件:包含三個select標簽,分別存放省市區的信息
在模板中引入jquery文件
<script type="text/javascript" src="static/ct1/js/jquery-1.12.4.min.js"></script>編寫js代碼
- 綁定change事件
- 發出異步請求
- 使用dom添加元素
轉載于:https://www.cnblogs.com/alexzhang92/p/9529787.html
總結
以上是生活随笔為你收集整理的django之jquery完成ajax的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 控制台激活关闭事件
- 下一篇: 张季跃201771010139《面向对象