{"id":20827321,"url":"https://github.com/realpython/flask-paywall","last_synced_at":"2025-10-26T16:43:11.727Z","repository":{"id":23618161,"uuid":"26987560","full_name":"realpython/flask-paywall","owner":"realpython","description":"Setup a paywall with Flask and Stripe to offer paid access to your premium content.","archived":false,"fork":false,"pushed_at":"2016-03-16T11:19:27.000Z","size":23,"stargazers_count":41,"open_issues_count":0,"forks_count":15,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-07T21:04:40.861Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/realpython.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-22T03:37:45.000Z","updated_at":"2024-07-12T08:40:33.000Z","dependencies_parsed_at":"2022-08-22T02:31:14.169Z","dependency_job_id":null,"html_url":"https://github.com/realpython/flask-paywall","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/realpython%2Fflask-paywall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/realpython%2Fflask-paywall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/realpython%2Fflask-paywall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/realpython%2Fflask-paywall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/realpython","download_url":"https://codeload.github.com/realpython/flask-paywall/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252954432,"owners_count":21830903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T23:11:46.042Z","updated_at":"2025-10-26T16:43:06.703Z","avatar_url":"https://github.com/realpython.png","language":"Python","readme":"# Flask Paywall\n\nSetup a paywall with Flask and Stripe to offer paid access to your premium content.\n\n## Workflow\n\nAfter user register and pays (from the same form), s/he has access to premium content.\n\n## QuickStart\n\n### Set Environment Variables\n\nRename *config_sample.py* to *config.py*, update the config settings, and then run:\n\n```sh\n$ export APP_SETTINGS=\"project.config.DevelopmentConfig\"\n```\n\nor\n\n```sh\n$ export APP_SETTINGS=\"project.config.ProductionConfig\"\n```\n\n### Create DB\n\n```sh\n$ python manage.py create_db\n$ python manage.py db init\n$ python manage.py db migrate\n$ python manage.py create_admin\n```\n\n### Run\n\n```sh\n$ python manage.py runserver\n```\n\n### Test\n\nWithout coverage:\n\n```sh\n$ python manage.py test\n```\n\nWith coverage:\n\n```sh\n$ python manage.py cov\n```\n\n## Todo\n\n1. forgot password\n1. change/update password\n1. logging\n1. admin charts\n1. upgrade to python 3/update dependencies\n1. add autoenv","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frealpython%2Fflask-paywall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frealpython%2Fflask-paywall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frealpython%2Fflask-paywall/lists"}