本想做一個(gè)表單驗(yàn)證來(lái)熟悉一下ajax的功能,但是跟著教程敲一樣的代碼,自己的django卻沒法接收到頁(yè)面ajax發(fā)送的數(shù)據(jù),接收到的全是none,一步步調(diào)試過(guò),也發(fā)現(xiàn)不了問題,后來(lái)自己另起一個(gè)app寫了一個(gè)表單驗(yàn)證,django卻能收到ajax的數(shù)據(jù)并返回data,不知道原先的代碼出什么問題了,csrf也注釋掉了,還是收不到ajax的數(shù)據(jù)。
已經(jīng)試過(guò)加上{% csrf_token %} 了,沒用,注釋掉了setting.py里的csrf攔截了。
另外,把自己的代碼和教程做了比對(duì),是一樣的,但是教程用的是django1.8,自己用的是2.0,不知道是不是版本問題?把自己的代碼替換到教程里面的源碼里也不行
// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)
views文件:
def ajax(request):
ret = {'status':True,'error':None,'data':None}
try:
h = request.POST.get('hostname')
i = request.POST.get('IP')
p = request.POST.get('port')
c = request.POST.get('agent')
print(type(h))
if h and len(h) > 5:
models.Host.objects.create(hostname = h,ip = i, port = p,b_id = c)
else:
ret['status'] = False
ret['error'] = '太短了'
except Exception as e:
ret['status'] = False
ret['error'] = '請(qǐng)求錯(cuò)誤'
return HttpResponse(json.dumps(ret))
urls.py文件:
from django.contrib import admin
from django.urls import path,re_path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('host/',views.host),
re_path('business/',views.business),
path('ajax/',views.ajax),]
html代碼:(<body>部分)
<form id="add_form" action="/host/" method="POST">
{% csrf_token %}
主機(jī)名:<input type="text" name="hostname" id="h1"><span id="error_msg"></span><br>
IP:<input type="text" name="IP" id="i1"><br>
端口:<input type="text" name="port" id="p1"><br>
<select name="agent" id="s1">業(yè)務(wù)線
{% for i in v2 %}
<option value="{{i.b_id}}">{{i.b__caption}}</option>
{% endfor %}
</select>
<input type="submit" value="提交" >
<input type="button" value="取消" >
<a id="a1">ajax提交</a>
</form>
<script src="/static/jquery-3.3.1.js"></script>
<script>
$(function(){
$('#a1').click(function(){
$.ajax({
url:"/ajax/",
type:'PSOT',
data:$('#add_form').serialize(),
success:function(data){
var obj = JSON.parse(data);
if(obj.status){
location.reload()
}else{
$('#error_msg').text(obj.error)
}
}
})
})
})
</script>
需要整個(gè)django文件測(cè)試的,希望留下郵箱,請(qǐng)各位大神幫個(gè)忙了!
POST寫錯(cuò)了??
<script>
$(function(){
$('#a1').click(function(){
$.ajax({
url:"/ajax/",
type:'PSOT', ←這里
data:$('#add_form').serialize(),
success:function(data){
var obj = JSON.parse(data);
if(obj.status){
location.reload()
}else{
$('#error_msg').text(obj.error)
}
}
})
})
})
</script>
應(yīng)該換成下面這樣
def ajax(request):
ret = {'status':True,'error':None,'data':None}
try:
h = request.POST.get('hostname')
i = request.POST.get('IP')
p = request.POST.get('port')
c = request.POST.get('agent')
print(type(h))
if h and len(h) > 5:
models.Host.objects.create(hostname = h,ip = i, port = p,b_id = c)
else:
ret['status'] = False
ret['error'] = '太短了'
except Exception as e:
ret['status'] = False
ret['error'] = '請(qǐng)求錯(cuò)誤'
data = json.dumps(ret)
return HttpResponse(data, content_type='application/json')
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問,美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。