1.前端vue环境搭建
如何拿到已开发好的vue代码,在本地运行
1.1下载Node(官网)
node.js官网网址:nodejs.org
安装Node方法
选择下一步即可
1.2.打开VSCode加载前端项目
文件等更新完毕后会放到资料中,如有需要可以私信获取
1.3.运行命令安装依赖包
命令行输入:
- num install # 速度慢
- npm install --global yarn # 速度快
yarn
1.4.启动项目
yarn serve
2.后端Tornado环境搭建
2.1创建文件夹用VSCode打开
2.2VSCode中创建虚拟环境
mkvirtualenv forum_env
2.3安装
安装tornado
pip install tornado
安装异步peewee
pip install peewee-async
安装异步mysql
pip install aiomysql
2.4项目内搭建结构
- 新建目录,最后会把所有目录截图
- 创建一个类,并测试是否能打开网页访问
- 创建静态资源的路径、前缀参数
- 新建一个数据库、连接数据库、异步创建模型
2.5 未分类时的文件信息
# app.py
from tornado.web import Application, RequestHandler
from tornado.ioloop import IOLoop
import peewee_async
class IndexHandler(RequestHandler):
async def get(self):
self.write('Hello!!!')
# 异步连接数据库
mysql = {
'database':'forum',
'host':'127.0.0.1',
'port':3306,
'user':'root',
'password':'root'
}
database = peewee_async.MySQLDatabase(**mysql)
manager = peewee_async.Manager(database)
if __name__ == '__main__':
import os
base_path = os.path.abspath(os.path.dirname(__file__))
settings = {
'static_path': os.path.join(base_path,'static'),
'static_url_prefix':'/static/',
'debug':True
}
app = Application([('/', IndexHandler)], **settings)
app.listen(8000)
IOLoop.current().start()
但是这样很不好,因为到时候的控制器增多,全部写在一起就容易乱
2.6 分类创建Tornado项目结构
- 分出连接数据库内容到参数文件config.py
- 创建一个文件夹下放:models放模型、handler放控制器类、static放静态文件、utils工具类
- 在handler下创建BaseHandler移动控制器IndexHandler
- 建立router.py专门管理创建路由
- 创建文件专门负责启动项目manger.py
- 优化app.py,放到forum下的初始化文件,让文件夹变成一个包,可以自动执行
2.7分类创建Tornado项目结构展示
# forum/__init__.py
# 管理项目初始化应用
from tornado.web import Application
import peewee_async
from config import mysql,settings
from router import handlers
database = peewee_async.MySQLDatabase(**mysql)
manager = peewee_async.Manager(database)
def create_app():
app = Application(handlers, **settings)
app.listen(8000)
# manager.py
# 专门负责启动项目
from tornado.ioloop import IOLoop
from forum import create_app
def start_app():
create_app()
IOLoop.current().start()
if __name__ == '__main__':
start_app()
# router.py
from forum.handler import BaseHandler
handlers = [
('/',BaseHandler.IndexHandler)
]
# forum/handler/BaseHandler.py
from tornado.web import RequestHandler
class IndexHandler(RequestHandler):
async def get(self):
self.write('Hello!!!')
# config.py
# 连接数据库配置信息
import os
base_path = os.path.abspath(os.path.dirname(__file__))
settings = {
'static_path': os.path.join(base_path,'forum/static'),
'static_url_prefix':'/static/',
'debug':True
}
# 异步连接数据库
mysql = {
'database':'forum',
'host':'127.0.0.1',
'port':3306,
'user':'root',
'password':'root'
}