Need help with flasky-with-celery?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

miguelgrinberg
242 Stars 74 Forks MIT License 8 Commits 5 Opened issues

Description

How to incorporate Celery into a well structured Flask application

Services available

!
?

Need anything else?

Contributors list

# 1,252
Python
Flask
Socket....
gevent
4 commits
# 62,233
Ruby
Shell
search-...
ruby-on...
2 commits
# 36,278
Python
Shell
idioms
C
1 commit

Flasky with Celery

This repository contains a version of the Flasky application featured in my O'Reilly book Flask Web Development that demonstrates how to run Celery.

The application is largely the same as in the book. The only change is that the sending of emails is handled by a Celery task instead of a background thread. You can look at this commit to see exactly what changes were made.

Quick Setup

  1. Clone this repository.
  2. Create a virtualenv and install the requirements (
    pip install requirements/dev.txt
    )
  3. Run the database migrations (
    python manage.py db upgrade
    )
  4. Open a second terminal window and start a local Redis server (if you are on Linux or Mac, execute
    run-redis.sh
    to install and launch a private copy).
  5. Open a third terminal window. Set two environment variables
    MAIL_USERNAME
    and
    MAIL_PASSWORD
    to a valid Gmail account credentials (these will be used to send emails through Gmail's SMTP server). Then start a Celery worker:
    venv/bin/celery worker -A celery_worker.celery --loglevel=info
    .
  6. Start Flasky on your first terminal window:
    venv/bin/python manage.py runserver
    .
  7. Go to
    http://localhost:5000/
    and register an account to see how the Celery background emails work!

For general details on how to integrate Celery with Flask, see my article Using Celery with Flask.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.