前端通過ajax來獲取數據庫中的數據
1、實現方式一(不用,只參考)
在后台通過獲取數據並自己格式化成html數據全部發給前端
# views.py def get_data(request): user_list = models.UserInfo.objects.all() return render(request, 'get_data.html', {'user_list':user_list})
# 獲取數據的前端頁面 index.html
<h1>用戶列表</h1>
<table id='tb'></table>
<script src='/statics/jquery.js'></script>
<script>
$(function{
initData()
});
function initData(){
$.ajax({
url: '/get_data.html'
type: 'GET',
success: function(arg){
$('#tb').append(arg);
}
})
}
<script>
# get_data.html {% for row in user_list %} <tr> <td>{{ row.id }}</td>
<td>{{ row.username }}</td>
</tr>
{% endfor %}
2、實現方法二
在后台通過只獲取數據發給前端,由前端生成相應的html來存放數據
# views.py from django.core imports serializers 可將對象序列化為符串
def get_data(request):
ret = {'status':True, 'data':None}
try: # 1
user_list = models.UserInfo.objects.all() # 這時是個QuerySet,里邊是一個一個對象,無法json.dumps()
ret['data'] = serializers.serialize('json',user_list) # 將QuerySet對象序列化為json格式的字符串
# 2
# user_list = models.UserInfo.objects.all().values('id','username') #這時是個QuerySet,里邊是一個一個字典
# ret['data']= list(userlist) # 用list將最外層的QuerySet轉為列表,就可json.dumps()
# 3
# user_list = models.UserInfo.objects.all().values_list('id','username') #這時是個QuerySet,里邊是一個一個元組
# ret['data']= list(userlist) # 用list將最外層的QuerySet轉為列表,就可json.dumps()
except Exception as e:
ret['data'] = False
return HttpResponse(json.dumps(ret))
# 獲取數據的前端頁面 index.html <h1>用戶列表</h1> <table id='tb'></table> <script src='/statics/jquery.js'></script> <script> $(function{ initData() }); function initData(){ $.ajax({ url: '/get_data.html' type: 'GET',
dataType:'JSON' success: function(arg){ if(arg.status){
// 此時arg.data是個字符串
v = JSON.parse(arg.data) //再將json字符串轉為json對象
//通過for循環取里里面的數據生成html...
} } }) } <script>