博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于Python Tornado的在线问答系统
阅读量:6259 次
发布时间:2019-06-22

本文共 1581 字,大约阅读时间需要 5 分钟。

概述

本项目使用最新的Tornado开发。实现了在线提问,回答,评论等功能。使用到Tornado的generator,长轮询等等技术, 支持MySQL的异步连接。

详细

代码下载:

项目介绍:本项目最初是为了模仿StackOverflow的练手项目,实现了部分StackOverflow的功能。

 

项目说明:推荐使用Linux部署该项目,这样可以优化Tornado的性能。我的环境是Windows加Python3.6.5。

 

目录结构:

image.png

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

image.png

2:激活虚拟环境 venv\Scripts\activate

image.png

3:安装Python包依赖 pip install -r require

image.png

4:将local_conf.bak.py文件名修改为local_conf.py,并且编辑local_conf.py文件为如下内容:

 

# -*- coding: utf-8 -*-import osDOMAIN = '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;

image.png

 

6:执行脚本迁移,创建初始化数据。python manage.py migrate

image.png

7:查看数据表是否创建成功,并且检查redis是否可用

image.png

8:运行项目,python manage.py run,如果您的系统是windows,那将无法使用Tornado的fork进程模式,会遇到下面的错误:

image.png

这时不要惊慌,你只需要修改manage.py文件,将server.start(num_process=4)修改为server.start()即可

image.png

最后重新运行项目: python manage.py run

 

image.png

 

9:浏览器访问http://127.0.0.1:9000

image.png

image.png

 

image.png

 

image.png

image.png

 

image.png

 

以上是部分项目页面截图,如果对于项目有什么问题可以联系我~

代码下载:

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

 

转载于:https://www.cnblogs.com/demodashi/p/9582457.html

你可能感兴趣的文章
使用人工智能测试软件
查看>>
如何基于Kubernetes构建完整的DevOps流水线
查看>>
Rust 1.30带来更多元编程支持,并改进了模块系统
查看>>
【转载】10个Web3D可视化精彩案例
查看>>
[deviceone开发]-动态添加组件add方法的示例
查看>>
极限编程创始人Ron Jeffries建议开发者放弃敏捷
查看>>
ticketea如何从一体化转向多体化架构
查看>>
解读2017之容器篇:后Kubernetes时代
查看>>
InfoQ播客:Randy Shoup谈Stitch Fix的技术栈,数据科学和微服务架构
查看>>
高德地图定位工具类
查看>>
Yelp开源数据管道项目最新组件——数据管道客户端库
查看>>
Docker周报:Windows Server将支持Mesos
查看>>
当编程语言掌握在企业手中,是生机还是危机?
查看>>
JetBrains Rider:一款全新的基于IntelliJ和ReSharper的.NET IDE
查看>>
Sonatype收购Vor Security,扩展对Nexus开源组件的支持
查看>>
Git 2.18版本已支持Git协议v2
查看>>
英孚教育全面上云与Serverless构建之路
查看>>
可执行镜像——开发环境的Docker化之路
查看>>
IntelliJ IDEA 2018.2支持Java 11、MacBook Touch Bar等新特性
查看>>
Microsoft 推出在AzureApp Service上支持Windows容器的公开预览版
查看>>