基於Python Tornado的在線問答系統
概述
本項目使用最新的Tornado開發。實現了在線提問,回答,評論等功能。使用到Tornado的generator,長輪詢等等技術, 支持MySQL的異步連接。詳細
代碼下載:http://www.demodashi.com/demo/13926.html
項目介紹:本項目最初是為了模仿StackOverflow的練手項目,實現了部分StackOverflow的功能。
項目說明:推薦使用Linux部署該項目,這樣可以優化Tornado的性能。我的環境是Windows加Python3.6.5。
目錄結構:
database:MySQL/Redis等異步連接器,數據操作方法。
handlers:Tornado控制器文件
static:靜態文件地址
templats:html頁面地址
utils:Python實用工具腳本
conf:配置文件
local_conf.bak.py:本地配置文件示例
manage.py:程序啟動入口
require:依賴包,使用pip安裝
router.py:路由
0:下載壓縮包,將項目源文件解壓到指定目錄。我的目錄是C:\Users\zhang\Downloads\tequila-master\tequila-master>
1:在項目根目錄創建venv虛擬環境,virtualenv venv --no-site-packages
2:激活虛擬環境 venv\Scripts\activate
3:安裝Python包依賴 pip install -r require
4:將local_conf.bak.py文件名修改為local_conf.py,並且編輯local_conf.py文件為如下內容:
# -*- coding: utf-8 -*- import os DOMAIN = ‘http://127.0.0.1:9000‘ DEFAULT_UPLOAD_PATH = os.path.join(os.path.dirname(__file__), ‘pics‘) DATABASE = { ‘default‘: { ‘host‘: ‘localhost‘, ‘port‘: 3306, ‘database‘: ‘tequila_demo‘, ‘user‘: ‘root‘, ‘password‘: ‘你的數據庫密碼‘, ‘charset‘: ‘utf8‘ } } REDIS = { ‘default‘: { ‘host‘: ‘localhost‘, ‘port‘: 6379, ‘password‘: ‘‘, ‘selected_db‘: 0, } }
5:創建數據庫,create database tequila_demo;
6:執行腳本遷移,創建初始化數據。python manage.py migrate
7:查看數據表是否創建成功,並且檢查redis是否可用
8:運行項目,python manage.py run,如果您的系統是windows,那將無法使用Tornado的fork進程模式,會遇到下面的錯誤:
這時不要驚慌,你只需要修改manage.py文件,將server.start(num_process=4)修改為server.start()即可
最後重新運行項目: python manage.py run
9:瀏覽器訪問http://127.0.0.1:9000
以上是部分項目頁面截圖,如果對於項目有什麽問題可以聯系我~
代碼下載:http://www.demodashi.com/demo/13926.html
註:本文著作權歸作者,由demo大師發表,拒絕轉載,轉載需要作者授權
基於Python Tornado的在線問答系統