python ajax学习

django 文件上传

1 更改上传文件的丑陋的格式

    <form method="post" enctype="multipart/form-data">
        {% csrf_token %}
        <input type="text" name="username">
        <div style="position: relative">
            <a >NB上传</a>
            <input type="file" name="img" style="opacity: 0.1;position: absolute;left: 0;">
        </div>
        <input type="submit" value="提交">
    </form>

2 后台处理文件上传

def upload(request):
    if request.method=='GET':
        return render(request,'app01/upload.html')
    if request.method=='POST':
        # print(request.POST.get('username'))
        # print(request.FILES.get('img'))
        img=request.FILES.get('img')  #img是对象,包含了文件的大小,名称,文件内容
        f=open(img.name,'wb')
        for line in img.chunks():
            f.write(line)
        f.close()
        return HttpResponse('upload file')

 django ORM的操作

1跨表操作

model.Person.objects.all().select_related('ut')  #如果操作有跨表的动作的话

model.Person.objects.all().select_related('ut','nt') 

2GROUP BY的操作

from django.db.models import Count, Min, Max, Sum
models.Tb1.objects.filter(c1=1).values('id').annotate(c=Count('num'))
SELECT "app01_tb1"."id", COUNT("app01_tb1"."num") AS "c" FROM "app01_tb1" WHERE "app01_tb1"."c1" = 1 GROUP BY "app01_tb1"."id"

3distinct 操作

model.UserInfo.objects.values('data').distinct()

4order_by操作

 model.UserInfo.objects.all().order_by('id',''name)

5extra操作

Entry.objects.extra(select={'new_id': "select col from sometable where othercol > %s"}, select_params=(1,))
Entry.objects.extra(where=["foo='a' OR bar = 'a'", "baz = 'a'"])

6only操作

model.UserInfo.objects.filter(...).only('id','name')

7using操作

model.Person.objects.all().using('default')# 需要在settings.py 中定义数据库的连接字符串

 ajax学习

原生的ajax是XMLHttpRequest对象

function AjaxSubmit2() {
            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function () {
                if(xhr.readyState == 4){
                    // 接收完毕服务器返回的数据
                    console.log(xhr.responseText);

                }
            };
            xhr.open('GET','/ajax1.html?p=123');
            xhr.send(null);
        }

 原生的ajax发送post请求   数据放在send方法中,需要设置请求头.

function AjaxSubmit4() {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
        if(xhr.readyState == 4){
            // 接收完毕服务器返回的数据
            console.log(xhr.responseText);
        }
    };
    xhr.open('POST','/ajax1.html');
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset-UTF-8');
    xhr.send("p=456");
}
原文地址:https://www.cnblogs.com/hexintong/p/9592025.html