基于Python Tornado的在线问答系统
概述
详细
项目介绍:本项目最初是为了模仿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






以上是部分项目页面截图,如果对于项目有什么问题可以联系我~
注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权
基于Python Tornado的在线问答系统的更多相关文章
- 从Theano到Lasagne:基于Python的深度学习的框架和库
从Theano到Lasagne:基于Python的深度学习的框架和库 摘要:最近,深度神经网络以“Deep Dreams”形式在网站中如雨后春笋般出现,或是像谷歌研究原创论文中描述的那样:Incept ...
- 仿StackOverflow开发在线问答系统
仿StackOverflow开发在线问答系统 [第二期11月9日开课]使用Python Flask Web开发框架实现一套类似StackOverflow的在线问答平台LouQA,具备提问,回答,评论点 ...
- 数据分析:基于Python的自定义文件格式转换系统
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- 监控redis数据库应用状态:python,tornado实现
公司里最近redis服务器压力越来越大,其大概情况,只能从操作系统层面看,并不详尽,故同事在网上找了一个叫做 redis-live的开源项目,我配合部署了一下,还真有点意思,并解决了其中部分小debu ...
- Python Tornado框架(ioloop对象分析)
网上都说nginx和lighthttpd是高性能web服务器,而tornado也是著名的高抗负载应用,它们间有什么相似处呢?上节提到的ioloop对象是如何循环的呢?往下看. 首先关于TCP服务器的开 ...
- selenium2自动化测试实战--基于Python语言
自动化测试基础 一. 软件测试分类 1.1 根据项目流程阶段划分软件测试 1.1.1 单元测试 单元测试(或模块测试)是对程序中的单个子程序或具有独立功能的代码段进行测试的过程. 1.1.2 集成测试 ...
- selenium2环境搭建----基于python语言
selenium支持多种语言如java.c#.Python.PHP等,这里基于python语言,所以这里搭建环境时需做俩步操作: ----1.Python环境的搭建 ----2.selenium的安装 ...
- 【Machine Learning】决策树案例:基于python的商品购买能力预测系统
决策树在商品购买能力预测案例中的算法实现 作者:白宁超 2016年12月24日22:05:42 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本 ...
- 基于CkEditor实现.net在线开发之路(7)列表页面开发动作介绍
一个列表页面不止是查询,它也包含了很多业务上功能的实现,这些业务功能的实现的逻辑我称之为动作.如触发单击按钮删除数据,更改业务表数据,调用webService,调用WCF接口,弹出新窗体新增.修改.查 ...
随机推荐
- Codeforces Beta Round #4 (Div. 2 Only) D. Mysterious Present 记忆化搜索
D. Mysterious Present 题目连接: http://www.codeforces.com/contest/4/problem/D Description Peter decided ...
- git fetch, git pull 以及 FETCH_HEAD
git push. 这个很简单, 其实和后面的差不多, 这里就不讲了. 唯一需要注意的地方是: git push origin :branch2, 表示将一个内容为空的同名分支推送到远程的分支.(说白 ...
- 将多层级xml解析为Map
/** * 解析xml的工具类 * 1.将多层级xml解析为Map */ public class ParseXmlUtil { public static final String TAG = &q ...
- React-如何在jsx中自动补全标签(vscode)
痛点: React库最近的增长趋势很明显, 很多朋友都在选择学习, 很多公司也在选择使用React栈. 但在使用React库写代码的时候, 有一个很让人苦恼的问题, 就是标签在jsx语法中不能自动补 ...
- CentOS 6.9/7通过yum安装指定版本的Tomcat
说明:通过yum好处其实很多,环境变量不用配置,配置文件放在大家都熟悉的地方,通过rpm -ql xxx可以知道全部文件的地方等等. 一.安装Tomcat(8+) // 下载脚本 # git clon ...
- POJ 2417 Discrete Logging (Baby-Step Giant-Step)
Discrete Logging Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 2819 Accepted: 1386 ...
- IOS开关效果
有IOS的开关模拟,当然也有MIUI的开关模拟 看到设置选项里面的开关样式,突发奇想地来试试 最终效果如图: <!DOCTYPE html> <html> <hea ...
- linux下svn的用法
转载:http://blog.chinaunix.net/uid-22150747-id-189264.html 1.将文件checkout到本地目录 svn checkout path(path是服 ...
- Appium+python自动化21-DesiredCapabilities详解
Appium Desired Capabilities Desired Capabilities 是由 keys 和 values 组成的 JSON 对象. 举个简单例子: { "platf ...
- Linux命令执行的屏幕输出内容重定向到日志文件
摘要: 作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 快速mark一下这个命令细节,免得以后使用又忘记了 大家都知道可以用echo来输出内容到 ...