Add caching functionality via Flask-Caching
This commit is contained in:
		
							
								
								
									
										1
									
								
								Pipfile
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Pipfile
									
									
									
									
									
								
							@@ -13,6 +13,7 @@ sqlalchemy-utils = "*"
 | 
				
			|||||||
bcrypt = "*"
 | 
					bcrypt = "*"
 | 
				
			||||||
flask-babelex = "*"
 | 
					flask-babelex = "*"
 | 
				
			||||||
python-dateutil = "*"
 | 
					python-dateutil = "*"
 | 
				
			||||||
 | 
					flask-caching = "*"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[dev-packages]
 | 
					[dev-packages]
 | 
				
			||||||
pylint = "*"
 | 
					pylint = "*"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										55
									
								
								Pipfile.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										55
									
								
								Pipfile.lock
									
									
									
										generated
									
									
									
								
							@@ -1,7 +1,7 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "_meta": {
 | 
					    "_meta": {
 | 
				
			||||||
        "hash": {
 | 
					        "hash": {
 | 
				
			||||||
            "sha256": "3620d7a03e2f49bbf1b812fee29e163e2e0120cd1a3924f6895d3194583e7ac7"
 | 
					            "sha256": "e4313bc9baef5cb187176951d45094fe1de4ccba0d15ab58efbac21b6434f255"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "pipfile-spec": 6,
 | 
					        "pipfile-spec": 6,
 | 
				
			||||||
        "requires": {
 | 
					        "requires": {
 | 
				
			||||||
@@ -128,6 +128,14 @@
 | 
				
			|||||||
            "index": "pypi",
 | 
					            "index": "pypi",
 | 
				
			||||||
            "version": "==0.9.3"
 | 
					            "version": "==0.9.3"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        "flask-caching": {
 | 
				
			||||||
 | 
					            "hashes": [
 | 
				
			||||||
 | 
					                "sha256:44fe827c6cc519d48fb0945fa05ae3d128af9a98f2a6e71d4702fd512534f227",
 | 
				
			||||||
 | 
					                "sha256:e34f24631ba240e09fe6241e1bf652863e0cff06a1a94598e23be526bc2e4985"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "index": "pypi",
 | 
				
			||||||
 | 
					            "version": "==1.4.0"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
        "flask-login": {
 | 
					        "flask-login": {
 | 
				
			||||||
            "hashes": [
 | 
					            "hashes": [
 | 
				
			||||||
                "sha256:c815c1ac7b3e35e2081685e389a665f2c74d7e077cb93cecabaea352da4752ec"
 | 
					                "sha256:c815c1ac7b3e35e2081685e389a665f2c74d7e077cb93cecabaea352da4752ec"
 | 
				
			||||||
@@ -247,9 +255,9 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        "sqlalchemy": {
 | 
					        "sqlalchemy": {
 | 
				
			||||||
            "hashes": [
 | 
					            "hashes": [
 | 
				
			||||||
                "sha256:e21e5561a85dcdf16b8520ae4daec7401c5c24558e0ce004f9b60be75c4b6957"
 | 
					                "sha256:72325e67fb85f6e9ad304c603d83626d1df684fdf0c7ab1f0352e71feeab69d8"
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "version": "==1.2.9"
 | 
					            "version": "==1.2.10"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "sqlalchemy-utils": {
 | 
					        "sqlalchemy-utils": {
 | 
				
			||||||
            "hashes": [
 | 
					            "hashes": [
 | 
				
			||||||
@@ -276,10 +284,10 @@
 | 
				
			|||||||
    "develop": {
 | 
					    "develop": {
 | 
				
			||||||
        "astroid": {
 | 
					        "astroid": {
 | 
				
			||||||
            "hashes": [
 | 
					            "hashes": [
 | 
				
			||||||
                "sha256:0ef2bf9f07c3150929b25e8e61b5198c27b0dca195e156f0e4d5bdd89185ca1a",
 | 
					                "sha256:8704779744963d56a2625ec2949eb150bd499fc099510161ddbb2b64e2d98138",
 | 
				
			||||||
                "sha256:fc9b582dba0366e63540982c3944a9230cbc6f303641c51483fa547dcc22393a"
 | 
					                "sha256:add3fd690e7c1fe92436d17be461feeaa173e6f33e0789734310334da0f30027"
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "version": "==1.6.5"
 | 
					            "version": "==2.0"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "atomicwrites": {
 | 
					        "atomicwrites": {
 | 
				
			||||||
            "hashes": [
 | 
					            "hashes": [
 | 
				
			||||||
@@ -369,11 +377,11 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        "pylint": {
 | 
					        "pylint": {
 | 
				
			||||||
            "hashes": [
 | 
					            "hashes": [
 | 
				
			||||||
                "sha256:a48070545c12430cfc4e865bf62f5ad367784765681b3db442d8230f0960aa3c",
 | 
					                "sha256:248a7b19138b22e6390cba71adc0cb03ac6dd75a25d3544f03ea1728fa20e8f4",
 | 
				
			||||||
                "sha256:fff220bcb996b4f7e2b0f6812fd81507b72ca4d8c4d05daf2655c333800cb9b3"
 | 
					                "sha256:9cd70527ef3b099543eeabeb5c80ff325d86b477aa2b3d49e264e12d12153bc8"
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "index": "pypi",
 | 
					            "index": "pypi",
 | 
				
			||||||
            "version": "==1.9.2"
 | 
					            "version": "==2.0.0"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "pytest": {
 | 
					        "pytest": {
 | 
				
			||||||
            "hashes": [
 | 
					            "hashes": [
 | 
				
			||||||
@@ -390,6 +398,35 @@
 | 
				
			|||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "version": "==1.11.0"
 | 
					            "version": "==1.11.0"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        "typed-ast": {
 | 
				
			||||||
 | 
					            "hashes": [
 | 
				
			||||||
 | 
					                "sha256:0948004fa228ae071054f5208840a1e88747a357ec1101c17217bfe99b299d58",
 | 
				
			||||||
 | 
					                "sha256:10703d3cec8dcd9eef5a630a04056bbc898abc19bac5691612acba7d1325b66d",
 | 
				
			||||||
 | 
					                "sha256:1f6c4bd0bdc0f14246fd41262df7dfc018d65bb05f6e16390b7ea26ca454a291",
 | 
				
			||||||
 | 
					                "sha256:25d8feefe27eb0303b73545416b13d108c6067b846b543738a25ff304824ed9a",
 | 
				
			||||||
 | 
					                "sha256:29464a177d56e4e055b5f7b629935af7f49c196be47528cc94e0a7bf83fbc2b9",
 | 
				
			||||||
 | 
					                "sha256:2e214b72168ea0275efd6c884b114ab42e316de3ffa125b267e732ed2abda892",
 | 
				
			||||||
 | 
					                "sha256:3e0d5e48e3a23e9a4d1a9f698e32a542a4a288c871d33ed8df1b092a40f3a0f9",
 | 
				
			||||||
 | 
					                "sha256:519425deca5c2b2bdac49f77b2c5625781abbaf9a809d727d3a5596b30bb4ded",
 | 
				
			||||||
 | 
					                "sha256:57fe287f0cdd9ceaf69e7b71a2e94a24b5d268b35df251a88fef5cc241bf73aa",
 | 
				
			||||||
 | 
					                "sha256:668d0cec391d9aed1c6a388b0d5b97cd22e6073eaa5fbaa6d2946603b4871efe",
 | 
				
			||||||
 | 
					                "sha256:68ba70684990f59497680ff90d18e756a47bf4863c604098f10de9716b2c0bdd",
 | 
				
			||||||
 | 
					                "sha256:6de012d2b166fe7a4cdf505eee3aaa12192f7ba365beeefaca4ec10e31241a85",
 | 
				
			||||||
 | 
					                "sha256:79b91ebe5a28d349b6d0d323023350133e927b4de5b651a8aa2db69c761420c6",
 | 
				
			||||||
 | 
					                "sha256:8550177fa5d4c1f09b5e5f524411c44633c80ec69b24e0e98906dd761941ca46",
 | 
				
			||||||
 | 
					                "sha256:898f818399cafcdb93cbbe15fc83a33d05f18e29fb498ddc09b0214cdfc7cd51",
 | 
				
			||||||
 | 
					                "sha256:94b091dc0f19291adcb279a108f5d38de2430411068b219f41b343c03b28fb1f",
 | 
				
			||||||
 | 
					                "sha256:a26863198902cda15ab4503991e8cf1ca874219e0118cbf07c126bce7c4db129",
 | 
				
			||||||
 | 
					                "sha256:a8034021801bc0440f2e027c354b4eafd95891b573e12ff0418dec385c76785c",
 | 
				
			||||||
 | 
					                "sha256:bc978ac17468fe868ee589c795d06777f75496b1ed576d308002c8a5756fb9ea",
 | 
				
			||||||
 | 
					                "sha256:c05b41bc1deade9f90ddc5d988fe506208019ebba9f2578c622516fd201f5863",
 | 
				
			||||||
 | 
					                "sha256:c9b060bd1e5a26ab6e8267fd46fc9e02b54eb15fffb16d112d4c7b1c12987559",
 | 
				
			||||||
 | 
					                "sha256:edb04bdd45bfd76c8292c4d9654568efaedf76fe78eb246dde69bdb13b2dad87",
 | 
				
			||||||
 | 
					                "sha256:f19f2a4f547505fe9072e15f6f4ae714af51b5a681a97f187971f50c283193b6"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "markers": "python_version < '3.7' and implementation_name == 'cpython'",
 | 
				
			||||||
 | 
					            "version": "==1.1.0"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
        "wrapt": {
 | 
					        "wrapt": {
 | 
				
			||||||
            "hashes": [
 | 
					            "hashes": [
 | 
				
			||||||
                "sha256:d4d560d479f2c21e1b5443bbd15fe7ec4b37fe7e53d335d3b9b0a7b1226fe3c6"
 | 
					                "sha256:d4d560d479f2c21e1b5443bbd15fe7ec4b37fe7e53d335d3b9b0a7b1226fe3c6"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,6 +26,7 @@ from flask_security import SQLAlchemyUserDatastore, current_user, login_required
 | 
				
			|||||||
from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
 | 
					from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from calsocial.account import AccountBlueprint
 | 
					from calsocial.account import AccountBlueprint
 | 
				
			||||||
 | 
					from calsocial.cache import cache
 | 
				
			||||||
from calsocial.utils import RoutedMixin
 | 
					from calsocial.utils import RoutedMixin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -79,6 +80,8 @@ class CalendarSocialApp(Flask, RoutedMixin):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        db.init_app(self)
 | 
					        db.init_app(self)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cache.init_app(self)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        babel = Babel(app=self)
 | 
					        babel = Babel(app=self)
 | 
				
			||||||
        babel.localeselector(get_locale)
 | 
					        babel.localeselector(get_locale)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										22
									
								
								calsocial/cache.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								calsocial/cache.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					# Calendar.social
 | 
				
			||||||
 | 
					# Copyright (C) 2018 Gergely Polonkai
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					# it under the terms of the GNU Affero General Public License as published by
 | 
				
			||||||
 | 
					# the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
 | 
					# (at your option) any later version.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					# GNU Affero General Public License for more details.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# You should have received a copy of the GNU Affero General Public License
 | 
				
			||||||
 | 
					# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"""Caching functionality for Calendar.social
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from flask_caching import Cache
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cache = Cache()  # pylint: disable=invalid-name
 | 
				
			||||||
@@ -14,3 +14,4 @@ SECRET_KEY = 'ThisIsNotSoSecret'
 | 
				
			|||||||
SECURITY_PASSWORD_HASH = 'bcrypt'
 | 
					SECURITY_PASSWORD_HASH = 'bcrypt'
 | 
				
			||||||
SECURITY_PASSWORD_SALT = SECRET_KEY
 | 
					SECURITY_PASSWORD_SALT = SECRET_KEY
 | 
				
			||||||
SECURITY_REGISTERABLE = False
 | 
					SECURITY_REGISTERABLE = False
 | 
				
			||||||
 | 
					CACHE_TYPE = 'simple'
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user