PySide6.QtNetwork.QNetworkDiskCache¶
- class QNetworkDiskCache¶
- The - QNetworkDiskCacheclass provides a very basic disk cache. More…- Synopsis¶- Methods¶- def - __init__()
- def - cacheDirectory()
- def - fileMetaData()
 - Virtual methods¶- def - expire()
 - Note - This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE - Detailed Description¶- Warning - This section contains snippets that were automatically translated from C++ to Python and may contain errors. - QNetworkDiskCachestores each url in its own file inside of the- cacheDirectoryusing QDataStream. Files with a text MimeType are compressed using qCompress. Data is written to disk only in- insert()and- updateMetaData().- Currently you cannot share the same cache files with more than one disk cache. - QNetworkDiskCacheby default limits the amount of space that the cache will use on the system to 50MB.- Note you have to set the cache directory before it will work. - A network disk cache can be enabled by: - manager = QNetworkAccessManager(self) diskCache = QNetworkDiskCache(self) directory = QStandardPaths.writableLocation(QStandardPaths.CacheLocation) + "/cacheDir/" diskCache.setCacheDirectory(directory) manager.setCache(diskCache) - When sending requests, to control the preference of when to use the cache and when to use the network, consider the following: - namespace = using() # do a normal request (preferred from network, as this is the default) request = QNetworkRequest(QUrl("http://qt-project.org")) manager.get(request) # do a request preferred from cache request2 = QNetworkRequest(QUrl("http://qt-project.org")) request2.setAttribute(QNetworkRequest.CacheLoadControlAttribute, QNetworkRequest.PreferCache) manager.get(request2) - To check whether the response came from the cache or from the network, the following can be applied: - def replyFinished(reply): fromCache = reply.attribute(QNetworkRequest.SourceIsFromCacheAttribute) print("page from cache?", fromCache.toBool()) - Creates a new disk cache. The - parentargument is passed to- QAbstractNetworkCache‘s constructor.- cacheDirectory()¶
- Return type:
- str 
 
 - Returns the location where cached files will be stored. - See also - expire()¶
- Return type:
- int 
 
 - Cleans the cache so that its size is under the maximum cache size. Returns the current size of the cache. - When the current size of the cache is greater than the - maximumCacheSize()older cache files are removed until the total size is less then 90% of- maximumCacheSize()starting with the oldest ones first using the file creation date to determine how old a cache file is.- Subclasses can reimplement this function to change the order that cache files are removed taking into account information in the application knows about that - QNetworkDiskCachedoes not, for example the number of times a cache is accessed.- Note - cacheSize()calls expire if the current cache size is unknown.- See also - fileMetaData(fileName)¶
- Parameters:
- fileName – str 
- Return type:
 
 - Returns the - QNetworkCacheMetaDatafor the cache file- fileName.- If - fileNameis not a cache file- QNetworkCacheMetaDatawill be invalid.- maximumCacheSize()¶
- Return type:
- int 
 
 - Returns the current maximum size for the disk cache. - See also - setCacheDirectory(cacheDir)¶
- Parameters:
- cacheDir – str 
 
 - Sets the directory where cached files will be stored to - cacheDir- QNetworkDiskCachewill create this directory if it does not exists.- Prepared cache items will be stored in the new cache directory when they are inserted. - See also - cacheDirectory()- CacheLocation- setMaximumCacheSize(size)¶
- Parameters:
- size – int 
 
 - Sets the maximum size of the disk cache to be - size.- If the new size is smaller then the current cache size then the cache will call - expire().- See also