2021-10-12,实战:Django 使用原生sql

开发文档

使用ajax传递数组的时候需要加入参数django 获取前端向 后台传过来的数组时 ,
前端 在ajax 里面 需加上 ,traditional:true
Django 的话用getlist获得数组

Django orm中使用原生sql

1使用raw

def test2(request):
    aa = BookInfo.objects.raw('select * from bookinfo')
    for i in aa:
        print(i.bookname,i.publictime)
    return HttpResponse('ok')

2 直接执行自定义原生sql语句:

 #直接执行自定义原生sql(完全避开模型层,类似pymysql操作)

  from django.db import connection

  cursor=connection.cursor()

  cursor.execute('select * from app01_book')

  ret=cursor.fetchall()

  print(ret)#((2, '小时光', Decimal('10.00'), 2), (3, '未来可期', Decimal('33.00'), 1), (4, '打破思维里的墙', Decimal('11.00'), 2), (5, '时光不散', Decimal('11.00'), 3))

mysql数据库中id字段删除之后再次加入id会不连续,需要修改自增长初始值

alter table 表名 AUTO_INCREMENT=id;

当表中最大id值为10 , 则代码中的id=10 , 下一次出现的id指为11.当你写的sql语句中的id为0,那么会自动选择表中最大值

使用ajax发送json数据
要将发送的数据改成json格式 , 声明数据类型为json, 然后 需要在请求头中加入contentType: “application/json”, //必须这样写POST

//发送ajax请求
                $.ajax({
                    url: "http://127.0.0.1:8000/zz_jx_add/",
                    data: JSON.stringify(data.field),
                    type: "POST",
                    dataType: "json",
                    async: false,
                    contentType: "application/json", //必须这样写POST   还要加JSON.stringify()    
                    success: function (data) {
                        // console.log(data.param);
                    },
                    error: function (text) {
                        console.log(text);
                    }
                });
<ul class="add_li"><li>你的职称是:<strong>副教授</strong><br></li><li>年度:<select name="" id=""><option value="upyear">2019-2020</option><option value="downyear">2020-2021</option></select>时间:<input type="text" id="time"></li><li>老师姓名<input type="text" id="username"></li><li>班级:<input type="text" id="classname"><br></li><li>课程名称:<input type="text" id="coursename"><br></li><li>人数:<input type="text" id="peoplenum"><br></li><li>课程性质<input type="text" id="kcxz"></li><li>实习、写生、社会实 践等停课课时:<input type="text" id="tkks"></li><li>实际上课周数:<input type="text" id="sjskzs"><br></li><li>实际周学时数:<input type="text" id="sjzxss"><br></li><li>实验占用学时:<input type="text" id="sjzyxs"><br></li><li>实际有效学时:<input type="text" id="sjyxxs"><br></li>
<li> 课程性质:<select name="kcxz666" id="kcxz" onchange="R_GetVal(this)"><option value="">---课程性质---</option><option value="gxjc">公修基础课</option><option value="ggxx">公共选修课</option><option value="jgwfyzyjc">经管文法艺专业基础课</option><option value="lgnkzyjc">理工农科专业基础课</option><option value="jgwfyzyk">经管文法艺专业课</option><option value="lgnkzyk">理工农科专业课</option><option value="wytlky">外语听力口语</option><option value="msjs">美术技能</option><option value="jsjsj">计算机上机</option></select><br></li></ul> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值