*前后端交互1----如何建立 python3+django

前端框架django; 后端语言python3

1、前后端关联

*form提交;用表单提交方式,进行前后端关联

url.py (urlpatterns :path指定html、A方法)--->view.py (定义A方法)--->HTML(定义表单及返回位置)

url.py:

urlpatterns = [
   
   path('web/', views.test),

view.py:

def test(request):
    query = request.GET.get('q','') #request.GET是一个类字典对象,它包含所有GET请求的参数,这里表示取得name为'q'的参数值

html:

定义表单:<form action="." class="class" method="GET">

                 <input type="text" name="q">

                  </form>

                   {% if result %}
                        <pre style="border:solid 1px white;">{{ result }}</pre >
                    {% endif %})

*JS ajax局部刷新json数据

背景:从输入框输入数据,点击按钮,展示在指定文本框

url.py:

1)

path('pvs/',views.pvs)

2)

#增加一个路径:

url('pvs/kkk', views.kkk),

view.py:

1)

def test(request):
    data = {}
    if request.method == 'POST':


        result =  request.POST.get("tel")
        print (result)
        data = {"tel": result}


        return HttpResponse(json.dumps(data))
    return render_to_response('pvs.html',{"aaa":json.dumps(data)})
    (#代替写法:   return render(request, 'pvs.html')

2)

#增加一个方法:

def kkk(request):
    data = {}
    if request.method == 'POST':
        result =  request.POST.get("tel")
        print (result)
        data = {"tel": result}
    return JsonResponse(data) #jsonresponse 需要 import

html:

 var tel= document.getElementById('memid').value
      
        $.ajax({
            type: "POST",
            data: {tel: tel},
            url: "/pvs/", //后台处理函数的url 这里用的是static url 需要与urls.py中的name一致

          2)  url:"/pvs/kkk/"  #第二种获取方式
            dataType:'json',
            success: function (result) {  
                $("#text").val(result.telvalue);
            },
            
            error: function () {
                //alert("false");
                document.getElementById("text").value = "未连接成功服务器";
            }
            
        })

参考:https://www.cnblogs.com/psklf/archive/2016/05/30/5542612.html

遇到问题:(经典)

1、request.POST.("tel") 报错,request.POST.get("tel")正常

原因:

request.POST['sth'] will raise a KeyError exception if 'sth' is not in request.POST

request.POST.get('sth') will return None if 'sth' is not in request.POST.  (有返回)

Additionally, .get allows you to provide an additional parameter of a default value which is returned if the key is not in the dictionary. For example, request.POST.get('sth', 'mydefaultvalue')

This is the behavior of any python dictionary and is not specific to request.POST.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值