All Projects → miguelgrinberg → Flack

miguelgrinberg / Flack

Licence: other
Companion code to my PyCon 2016 "Flask at Scale" tutorial session.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Flack

Web develop
《Python Web开发实战》书中源码
Stars: ✭ 1,146 (+150.22%)
Mutual labels:  flask, celery
Full Stack
Full stack, modern web application generator. Using Flask, PostgreSQL DB, Docker, Swagger, automatic HTTPS and more.
Stars: ✭ 451 (-1.53%)
Mutual labels:  flask, celery
Microsoftbotframework
Microsoft Bot Framework is a wrapper for the Microsoft Bot API by Microsoft
Stars: ✭ 68 (-85.15%)
Mutual labels:  flask, celery
Bugsnag Python
Official bugsnag error monitoring and error reporting for django, flask, tornado and other python apps.
Stars: ✭ 69 (-84.93%)
Mutual labels:  flask, celery
Tedivms Flask
Flask starter app with celery, bootstrap, and docker environment
Stars: ✭ 142 (-69%)
Mutual labels:  flask, celery
Python Devops
gathers Python stack for DevOps, these are usually my basic templates use for my implementations, so, feel free to use it and evolve it! Everything is Docker!
Stars: ✭ 61 (-86.68%)
Mutual labels:  flask, celery
Flask Log Request Id
Flask extension to track and log Request-ID headers produced by PaaS like Heroku and load balancers like Amazon ELB
Stars: ✭ 81 (-82.31%)
Mutual labels:  flask, celery
Bibi
An e-commerce fullstack solution for Flask 出口电商全栈解决方案
Stars: ✭ 914 (+99.56%)
Mutual labels:  flask, celery
Wechat Admin
Wechat Management System
Stars: ✭ 1,716 (+274.67%)
Mutual labels:  flask, celery
Flask Full
starter/boilerplate flask application with celery, mongoengine, signals, shell commands, swagger api docs and sphinx docs integration
Stars: ✭ 117 (-74.45%)
Mutual labels:  flask, celery
Incepiton Mysql
🍭A web platform designed for mysql inception
Stars: ✭ 90 (-80.35%)
Mutual labels:  flask, celery
Gather Deployment
Gathers scalable tensorflow and infrastructure deployment
Stars: ✭ 326 (-28.82%)
Mutual labels:  flask, celery
Docker Flask Celery Redis
Docker-Compose template for orchestrating a Flask app with a Celery queue using Redis
Stars: ✭ 165 (-63.97%)
Mutual labels:  flask, celery
Enferno
A Python framework based on Flask microframework, with batteries included, and best practices in mind.
Stars: ✭ 385 (-15.94%)
Mutual labels:  flask, celery
Drawer Behavior
Drawer behavior is a library that provide an extra behavior on drawer, such as, move view or scaling view's height while drawer on slide.
Stars: ✭ 394 (-13.97%)
Mutual labels:  scale
Qqzonemood
QQZone mood spider and analysis. QQ空间多线程爬虫和数据挖掘。提供线上服务,扫码登陆即可自动爬取和分析数据,还有网易云年度报告风格的数据展示;使用docker-compose打包程序,方便部署;额外提供QQ空间抽奖小程序。
Stars: ✭ 439 (-4.15%)
Mutual labels:  flask
Pytorch classification
利用pytorch实现图像分类的一个完整的代码,训练,预测,TTA,模型融合,模型部署,cnn提取特征,svm或者随机森林等进行分类,模型蒸馏,一个完整的代码
Stars: ✭ 395 (-13.76%)
Mutual labels:  flask
Autotest platform
Python+flask+selenium 搭建UI自动化测试平台
Stars: ✭ 391 (-14.63%)
Mutual labels:  flask
Pb
pb is a formerly-lightweight pastebin and url shortener
Stars: ✭ 448 (-2.18%)
Mutual labels:  flask
Sis
Simple image search engine
Stars: ✭ 438 (-4.37%)
Mutual labels:  flask

Flask At Scale Tutorial at PyCon 2016

This repository contains the companion code to my PyCon 2016 "Flask At Scale" class.

IMPORTANT NOTE: The initial commit in this repository has a version of this application that has a few scalability problems discussed during class. These problems are addressed in subsequent commits.

Installation

All the code and examples were tested on Python 3.5. Older versions of Python including 2.7 will likely work as well.

As usual, create a virtual environment and install the requirements with pip.

pip install -r requirements.txt

Running

The application uses Flask-Script to simplify common tasks such as creating the database and starting a development server. Right after you install the application, you need to create a database for it with this command:

python manage.py createdb

After that, you can run the application with the following command:

python manage.py runserver

You can add --help to see what other start up options are available.

The second component is a message queue, which you need to run as a service. By default, a Redis server running on localhost on the default port is assumed. If you want to use a different message queue, or a different configuration for Redis, then set the CELERY_BROKER_URL environment variable to the message queue connection URL. See the Celery documentation for information on connection URLs.

The final component of this application is the Celery workers, which must be started after the message queue is running with the following command:

python manage.py celery

If you want to have more verbose output from the workers you can add --loglevel=info to the command above.

Usage

That application allows multiple users to chat online. You can launch the application on your browser by typing http://127.0.0.1:5000 on the address bar.

Since authentication is not a topic in this class, I've decided to use a simplified flow that combines the registration and login forms in one. If you are a new user, enter your chosen nickname and password to register. If the nickname was not seen before the server will register you. If you are a returning user, provide your login in the same form. If the nickname is registered then the password will be validated.

Once you are logged in you can type messages in the bottom text entry field, and these messages will be seen by all other users. You can use simple MarkDown formatting to add style to your messages. If you enter any links as part of your message, these will be shown in expanded form below the message.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].