{"id":29482206,"url":"https://github.com/ianolpx/learn-tornado","last_synced_at":"2025-07-15T01:33:05.091Z","repository":{"id":304123356,"uuid":"1017821837","full_name":"ianolpx/learn-tornado","owner":"ianolpx","description":"A collection of example projects for learning the Python Tornado web framework.","archived":false,"fork":false,"pushed_at":"2025-07-11T07:07:09.000Z","size":51,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2025-07-11T10:51:12.965Z","etag":null,"topics":["examples","learning","python-tornado","tornado"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ianolpx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-11T06:40:31.000Z","updated_at":"2025-07-11T07:11:59.000Z","dependencies_parsed_at":"2025-07-11T10:51:20.913Z","dependency_job_id":null,"html_url":"https://github.com/ianolpx/learn-tornado","commit_stats":null,"previous_names":["ianolpx/learn-tornado"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ianolpx/learn-tornado","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ianolpx%2Flearn-tornado","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ianolpx%2Flearn-tornado/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ianolpx%2Flearn-tornado/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ianolpx%2Flearn-tornado/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ianolpx","download_url":"https://codeload.github.com/ianolpx/learn-tornado/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ianolpx%2Flearn-tornado/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265385710,"owners_count":23756728,"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":["examples","learning","python-tornado","tornado"],"created_at":"2025-07-15T01:30:54.641Z","updated_at":"2025-07-15T01:33:05.079Z","avatar_url":"https://github.com/ianolpx.png","language":"Python","readme":"# Learn Tornado\n\nA collection of example projects for learning the Python Tornado web framework.\n\n## Project Structure\n\n### 01-basics/ - Basic Concepts\n- **hello-world/**: Basic Tornado Hello World example\n- **templates/**: Template basic usage (variables, functions)\n- **templates-inheritance/**: Template inheritance and link processing\n\n### 02-ui/ - User Interface\n- **semantic-ui-basic/**: Basic Semantic UI components\n- **forms/**: Semantic UI form components\n- **file-upload/**: File upload functionality\n\n### 03-authentication/ - Authentication System\n- **basic-login/**: Basic login system\n- **login-register/**: Login + registration system\n\n### 04-database/ - Database Integration\n- **sqlite-integration/**: SQLite3 database integration\n\n### 05-advanced/ - Advanced Features\n- **websocket/**: WebSocket real-time communication\n- **ajax-examples/**: AJAX examples\n  - **checkid/**: ID duplicate check\n  - **charts/**: Chart libraries (Circliful, Highcharts)\n  - **interval/**: Periodic updates\n  - **timeout/**: Timeout handling\n- **async-processing/**: Asynchronous processing (MongoDB integration)\n- **crypto/**: CryptoJS encryption\n\n## Code Quality Improvements\n\nAll examples have been refactored with the following improvements:\n\n### 🏗️ **Modern Python Structure**\n- Python 3.6+ syntax and features\n- Type hints and docstrings\n- Proper error handling and logging\n- Clean code organization\n\n### 📚 **Enhanced Documentation**\n- Comprehensive docstrings for all classes and methods\n- Clear code comments explaining functionality\n- Consistent naming conventions\n- English documentation throughout\n\n### 🔧 **Better Configuration**\n- Command-line argument parsing with `tornado.options`\n- Environment-based configuration\n- Debug mode support\n- Flexible port configuration\n\n### 🛡️ **Improved Security**\n- Secure cookie handling\n- XSRF protection\n- Input validation and sanitization\n- Error handling without information leakage\n\n### 🚀 **Performance Optimizations**\n- Asynchronous operations where appropriate\n- Efficient database queries\n- Proper connection management\n- Resource cleanup\n\n## How to Run\n\n### Prerequisites\n```bash\n# Install Python 3.6+ and pip\n# Then install dependencies\npip install -r requirements.txt\n```\n\n### Running Examples\nEach project directory contains a complete, runnable example:\n\n```bash\n# Navigate to any example directory\ncd 01-basics/hello-world\n\n# Run the application\npython app.py\n\n# Or with custom port\npython app.py --port=8080\n```\n\nThe default port is 3000. Access `http://localhost:3000` in your browser.\n\n## Learning Path\n\n1. **01-basics/hello-world** - Understand basic Tornado concepts\n2. **01-basics/templates** - Learn template system\n3. **01-basics/templates-inheritance** - Learn template inheritance\n4. **02-ui/semantic-ui-basic** - Learn UI framework usage\n5. **02-ui/forms** - Learn form handling\n6. **02-ui/file-upload** - Implement file upload\n7. **03-authentication/basic-login** - Basic authentication system\n8. **03-authentication/login-register** - User management system\n9. **04-database/sqlite-integration** - Database integration\n10. **05-advanced/websocket** - Real-time communication\n11. **05-advanced/ajax-examples** - AJAX utilization\n12. **05-advanced/async-processing** - Asynchronous processing\n13. **05-advanced/crypto** - Encryption handling\n\n## Requirements\n\n- Python 3.6+\n- Tornado 6.1+\n- SQLite3 (included by default)\n- MongoDB (for async-processing example)\n- Motor (MongoDB async driver)\n\n## Installation\n\n```bash\n# Clone the repository\ngit clone \u003crepository-url\u003e\ncd learn-tornado\n\n# Install dependencies\npip install -r requirements.txt\n```\n\n## Development\n\n### Code Style\nAll code follows PEP 8 guidelines with:\n- Consistent indentation (4 spaces)\n- Descriptive variable names\n- Proper import organization\n- Comprehensive error handling\n\n### Testing\n```bash\n# Run tests (if pytest is installed)\npytest\n\n# Code formatting (if black is installed)\nblack .\n\n# Linting (if flake8 is installed)\nflake8 .\n```\n\n## License\n\nMIT License","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fianolpx%2Flearn-tornado","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fianolpx%2Flearn-tornado","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fianolpx%2Flearn-tornado/lists"}