GVKun编程网logo

如何从角度调用django方法

18

如果您对如何从角度调用django方法感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解如何从角度调用django方法的各种细节,此外还有关于$Django多表操作(增删改查,基于双下划线,对象的

如果您对如何从角度调用django方法感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解如何从角度调用django方法的各种细节,此外还有关于$Django 多表操作(增删改查,基于双下划线,对象的查询) 在Python脚本中调用Django环境、angular5 – 如何从角度为5的URL下载pdf文件、angularjs – 如何从角度资源$save()读取响应并保留原始数据、angularjs – 如何从角度资源获取完整的响应头的实用技巧。

本文目录一览:

如何从角度调用django方法

如何从角度调用django方法

如何解决如何从角度调用django方法?

大师,我是django的初学者,并且坚持简单的方案。

views.py中有一个方法,该方法将文件作为输入参数,并返回字符串作为结果。

如何从Angular调用此django方法并获取结果。

views.py

class ResViewSet(viewsets.ModelViewSet):
      queryset = Res.objects.all()
    serializer_class = ResSerializer

    @csrf_exempt
    def reslt(self,image_path):
       //doing something with image and create result string
        return result

urls.py
    urlpatterns = [
    url(r''^imageUpload'',ResViewSet.reslt)
]

当我通过邮递员调用api(http://127.0.0.1:8000/imageUpload)时,出现错误提示

/ imageUpload中的

TypeError get_results()缺少1个必需的位置参数:“ image_path”

虽然我试图在调用时将文件作为表单数据提供,但是我卡住了并且不知道是否缺少调用api的东西。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

$Django 多表操作(增删改查,基于双下划线,对象的查询) 在Python脚本中调用Django环境

$Django 多表操作(增删改查,基于双下划线,对象的查询) 在Python脚本中调用Django环境

0在Python脚本中调用Django环境、

import os
if __name__ == ''__main__'':
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "工程名.settings")
import django
django.setup()
from app01 import models

 

 1 创建多表模型(详情见代码)
  #用了OneToOneFieldForeignKey,模型表的字段,后面会自定加_id

class Zuozhe (models.Model):
id = models.AutoField (primary_key=True)
name = models.CharField (max_length=32)
xiang = models.OneToOneField (to=''Xiang'', to_field=''id'')

  # ManyToManyField会自动创建第三张表:格式如下

class Zuozhe (models.Model):
id = models.AutoField (primary_key=True)
class Books (models.Model):
id = models.AutoField (primary_key=True)
name = models.CharField (max_length=32)
price = models.DecimalField (max_digits=5, decimal_places=2)
banse = models.ForeignKey (to=Banse, to_field=''id'')

zuozhe = models.ManyToManyField (to=''Zuozhe'')

  # *************重点
  # 一对一的关系:OneToOneField
  # 一对多的关系:ForeignKey
  # 多对多的关系:ManyToManyField
  
 2 添加表记录
  1 一对多create
   -两种方式:
    -publish=对象 #创建时的字段=对象
    -publish_id=id #数据库里的实际字段=id

models.Book.objects.create(name=''红楼梦'',price=34.5,publish_id=1)
publish=models.Publish.objects.get (pk=1)
models.Book.objects.create (name=''西游记'', price=34.5, publish=publish)

  2 一对多删除:同单表删除 delete()

  3 一对多修改:两种方式,可以传对象,可以传id, update()
  4 一对一跟一对多一样
  5 多对多:   注意这里是拿到对象在 增删改
   -add  ----->可以传对象,可以传id,可以传多个

# book=models.Books.objects.filter(name=''添加1'').first()
# book.zuozhe.add(1,2)


   -remove  ----->可以传对象,可以传id,可以传多个
   -clear  ---->没有参数
   -set   修改 ----->必须传可迭代对象(一般列表),列表里面可以是对象,可以是id (举例:这本书的作者,set([1,2,3] 表里有就不改动了,没有添加,这本书之前的其他作者删除))

book=models.Books.objects.filter(name=''添加1'').first()
book.zuozhe.set ([3, 2, 1])

 3 基于对象的跨表查询: 对象。跨表/跨表_set--->object对象 | None | None。all() 拿到一个queryset对象
  1 一对一 :没有all,没_set
   正向:正向查询按字段

 

# lqz=models.Zuozhe.objects.filter(name=''lqz'').first()
# print(lqz.xiang.address)

 

   反向:反向查询按表名小写

# phone=models.Xiang.objects.filter(phone=''120'').first()
# print(phone.zuozhe.name)

  2 一对多
   正向:正向查询按字段
   反向:反向按表名小写_set.all()
  3 多对多
   正向:正向查询按字段

# book=models.Books.objects.filter(name=''水浒传'').first()
# print(book.zuozhe.all())
# for i in book.zuozhe.all():
# print(i.name)

   反向查询:反向按表名小写_set.all()

 

lqz=models.Zuozhe.objects.filter(name=''lqz'').first()
pp=lqz.books_set.all()
print(pp)
for i in pp :
print(i.name)

 


  4******基于对象的查询,多次查询(子查询)
 

总结: 多个.all()或者小写表名_set.all()  


 4 基于双下划线的跨表查询 
  -连表查询
  -一对一双下划线查询
   -正向:按字段,跨表可以在filter,也可以在values
   -反向:按表名小写,跨表可以在filter,也可以在values

# models.Books.objects.filter(name__startswith=''红'').values(''zuozhe__xiang__address'').filter(zuozhe__xiang__address__startswith=''北'').values(''zuozhe__xiang__sex'')

 

5.修改

models.User.objects.filter(id=1).update(name=''wd'')


 

angular5 – 如何从角度为5的URL下载pdf文件

angular5 – 如何从角度为5的URL下载pdf文件

我目前在这个问题上花了一天时间,仍然无法从角度5的网址下载文件

leadGenSubmit() {

    return this.http.get('http://kmmc.in/wp-content/uploads/2014/01/lesson2.pdf',{responseType:ResponseContentType.Blob}).subscribe((data)=>{
        console.log(data);
        var blob = new Blob([data],{type: 'application/pdf'});
        console.log(blob);
        saveAs(blob,"testData.pdf");
    },err=>{
        console.log(err);
        }
    )
}

当我运行上面的代码时,它显示以下错误

ERROR TypeError: req.responseType.toLowerCase is not a function
    at Observable.eval [as _subscribe] (http.js:2187)
    at Observable._trySubscribe (Observable.js:172)

如何解决这个问题.任何人都可以发布正确的代码从角度5的网址下载pdf文件?

解决方法

我认为你应该像这样定义header和responseType:

let headers = new HttpHeaders();
headers = headers.set('Accept','application/pdf');
return this.http.get(url,{ headers: headers,responseType: 'blob' });

angularjs – 如何从角度资源$save()读取响应并保留原始数据

angularjs – 如何从角度资源$save()读取响应并保留原始数据

我是Angular的新手.我相信我在这里缺少一些基本的东西.

我有一个对象,我发布到服务器来创建它.服务器返回对象Id,我需要读取它并更新客户端中的对象.

服务器只返回对象ID,但是,在客户端,我有其他数据,当我执行回调时我无法使用(我无法访问原始数据).

The Following jsfiddle code has been added as a reference:

//Get Angular Project module
var app = angular.module("app",['ngResource']);

//create Project factory
app.factory('Project',function ($resource) {
    return $resource('http://cmsanalyticsdev.pearson.com\\:8081/api/projects/:projectid',{projectid:'@id'},{update: {method:'PUT',isArray:false}}    
    );

});


//Controller for testing
app.controller('ApplicationController',function ($scope,Project) {

//Project object
var project = new Project({"name":"New Project Test","thumbnail":"","statusid":"521d5b730f3c31e0c3b1e764","projecttypeid":"521f585c092a5b550202e536","teamid":"521f585a092a5b550202e521","authors":[{"firstname":"Dilip","lastname":"Kumar"}],"projectspecificMetadata":{"isbn13":"345345","guid":"asfas"},"modifiedby":"521f585a092a5b550202e525"}
);
//Create new project
project.$save(project,function (projectResponse) {
                        project.projectId = projectResponse._id;
                        alert(project.name);
                    });

});

解决方法

我想你想要这样的东西:

//Controller for testing
app.controller('ApplicationController',Project) {

        //Project object
        var projectData = {"name":"New Project Test","modifiedby":"521f585a092a5b550202e525"};
        var project = new Project(projectData);

        //Create new project
        project.$save(project,function (projectResponse) {
                                projectData.projectId = projectResponse.id;
                                console.log("ProjectData: %j",projectData);
                            });

    });

angularjs – 如何从角度资源获取完整的响应头

angularjs – 如何从角度资源获取完整的响应头

我正在发送一个Angular $资源的请求:
myResource.get({ foo: bar },function success(data,headers) {
            console.log("data:",data); // Prints data
            console.log("headers:",headers()); // Prints only few headers
        },function failure(response,status) {
            // Handling failure here...
        })

但我只得到几个标题:

{content-type: "application/json",cache-control: "no-cache,max-age=604800",expires: "Mon,06 Apr 2015 16:21:17 GMT"}

当我想要抓住标题“X-Token”(如果我在浏览器控制台中检查就会收到)

有没有想过从Angular和$resource接收完整的标题列表?

出于安全原因,默认情况下不会公开某些响应标头.因此,您需要在服务器上使用 Access-Control-Expose-Headers,并添加要返回的额外响应头.
Access-Control-Expose-Headers: X-Token,header-a

关于如何从角度调用django方法的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于$Django 多表操作(增删改查,基于双下划线,对象的查询) 在Python脚本中调用Django环境、angular5 – 如何从角度为5的URL下载pdf文件、angularjs – 如何从角度资源$save()读取响应并保留原始数据、angularjs – 如何从角度资源获取完整的响应头的相关信息,请在本站寻找。

本文标签: