1. 程式人生 > >基於Python Tornado的在線問答系統

基於Python Tornado的在線問答系統

file www script install eat src body linu uil

概述

本項目使用最新的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的在線問答系統