我有一个C/C++程序需要读取一个文件,该文件可能是也可能不是gzip压缩的.我知道我们可以使用zlib中的gzread()读取压缩文件和未压缩文件 - 但是,如果文件是gzip压缩的,我只想使用zlib函数(出于性能原因).
那么有没有办法以编程方式检测或检查某个文件是否是从C/C++中删除的?
我们正在为我们的API使用Django REST Framework,我们需要对返回多个项目的关系字段进行分页.
要演示使用类似于文档中的示例:
class TrackSerializer(serializers.ModelSerializer):
class Meta:
model = Track
fields = ('order', 'title')
class AlbumSerializer(serializers.ModelSerializer):
tracks = TrackSerializer(many=True)
class Meta:
model = Album
fields = ('album_name', 'artist', 'tracks')
Run Code Online (Sandbox Code Playgroud)
相册的序列化输出示例:
{
'album_name': 'The Grey Album',
'artist': 'Danger Mouse'
'tracks': [
{'order': 1, 'title': 'Public Service Annoucement'},
{'order': 2, 'title': 'What More Can I Say'},
{'order': 3, 'title': 'Encore'},
...
],
}
Run Code Online (Sandbox Code Playgroud)
如果在专辑中有数百首曲目,则会出现问题.在这种情况下,有没有办法对"曲目"进行分页?
理想情况下,我知道在这种情况下,"轨道"应该指向一个API URL,它只返回特定相册的轨道 - 这反过来可以很容易地分页.该方法的缺点是获得连续前几个轨道所需的额外请求(以及因此延迟等).在我们的例子中,重要的是我们能够通过对Album API的单个请求获得至少一些轨道,然后在需要时动态加载其余轨道.
DRF是否为此提供任何特定功能或模式?或者有任何工作吗?
api django pagination django-pagination django-rest-framework