使用Django時如需操作已有數據庫,需要先進行模型映射
具體操作如下
# CMD操作,進入項目文件
python manage.py inspectdb
# 等待映射完畢
python manage.py inspectdb > models.py
#之後會在manage.py同級目錄下生成新的models.py文件,只需要復制粘貼即可
同樣我們需要先在urls.py
中使用as_view()
方法配置路由,具體原因上一章已經闡述
# 返回數據庫最新數據
class Getlastdata(APIView):
def post(self, request):
try:
patientname = request.data.get('patientname') # 獲取前端傳輸數據
print('用戶輸入名稱:' + patientname)
result = models.Patient.objects.filter(name=patientname).last() # 查詢符合條件的最新數據
name = result.name
age = result.age
height = result.height
weight = result.weight
body = result.body
alldata = []
alldata.append({
'name': name, 'age': age, 'height': height, 'weight': weight, 'body': body
})
alldata_json = json.dumps(alldata, ensure_ascii=False) # 轉換為JSON格式
return HttpResponse(alldata_json)
except Patient.DoesNotExist as e:
print('用戶名不存在')
return HttpResponse('用戶名不存在')
else:
return HttpResponse('請求失敗')
# get.js
import fetch from '@system.fetch';
import qs from 'querystring';
import router from '@system.router';
export default{
data:
{
winfo:'',
detail:[{
// 寫定初始值
name:'aaa',
age :'18',
height:'180',
weight:'70',
body:'腿部'
}]
},
onClick(){
fetch.fetch({
url:`http://127.0.0.1:8000/Qingtian/getlastdata/`,
data:qs.stringify({
patientname:'bbb'}), // 請求傳輸後端數據
responseType:'json',
method:'POST',
success:(resp)=>
{
var getdata
getdata = JSON.parse(resp.data) // 後端數據前端賦值
this.detail[0].name = getdata[0].name
this.detail[0].age = getdata[0].age
this.detail[0].height = getdata[0].height
this.detail[0].weight = getdata[0].weight
this.detail[0].body = getdata[0].body
this.winfo = resp.data
console.log('返回數據:'+this.winfo),
console.log('數據格式:'+typeof(this.winfo))
},
fail:(resp)=>
{
console.log('獲取數據失敗')
}
})
}
}