简介
web框架使用aiohttp
,模板引擎jinja2
,数据库操作使用aiomysql
稍作封装的一个ORM
(廖雪峰的教程上提供的 编写ORM)
安装python3.5.2
centos6.4
上自带了2.6的Python,YUM命令会依赖python 2.X,下面是安装python 3.5.X 的步骤
- wget –no-check-certificate http://mirrors.sohu.com/python/3.5.2/Python-3.5.2.tgz
- tar -zxvf Python-3.5.2.tgz
- cd Python-3.5.2
- ./configure –prefix=/usr/local/python3.5 –enable-shared
- make && make install
- ln -s /usr/local/python3.5/bin/python3 /usr/bin/python3
- 此时运行python3命令的话会报错,缺少.so文件,我们需要进行如下操作
- cp -R /usr/local/python3.5/lib/* /usr/lib64/
安装python3.5.2的时候,会自动把
setuptools
和pip
一起安装了
依赖库
- /usr/bin/python3 -m pip install aiohttp_jinja2 –trusted-host pypi.douban.com
- /usr/bin/python3 -m pip install aiomysql –trusted-host * pypi.douban.com
- /usr/bin/python3 -m pip install aiohttp_session –trusted-host pypi.douban.com
- /usr/bin/python3 -m pip install cryptography –trusted-host pypi.douban.com
- /usr/bin/python3 -m pip install –upgrade pip –trusted-host pypi.douban.com
系统默认的python版本依然是2.6,运行pip 带上python3的路径即可。另外搜狐的镜像和豆瓣的资源,速度确实快。。。
aiohttp_session
会依赖cryptography
库
部署
将编辑好的代码上传到服务器,Xshell
进入 www
目录,使用nohup
命令后台运行..
nohup /usr/bin/python3 app.py &
exit
nginx配置
1234567891011121314upstream python_app {server 127.0.0.1:9000;}server {listen 80;server_name test.wxwztj.com;location / {proxy_pass http://python_app;}location ~* .(gif|jpg|jpeg|png|css|js|ico)$ {root /www/web/awesome-python3-webapp/www;expires 1h;}}
必须使用
exit
退出,直接断开或关闭Xshell,nohup
的这条后台进程会挂掉。。。nohup /usr/bin/python3 test.py >/dev/null 2>&1 &
如果不想输出任何信息,可以在nohup command
后面加上>/dev/null 2>&1
,最后末尾加上&
结束,只输出错误日志并指定错误输出文件nohup ./program >/dev/null 2>log &
文件名缺省则默认为nohup.out
.
界面使用Uikit
和Vue.js
.Vue的绑定感觉和Angularjs相似,aiohttp
也可以编写middleware
实现错误处理、验证登录、控制访问权限等。
网站最后效果展示
代码下载
test.py
是入口文件,app.py
以及其他文件是廖老师的demo。
orm
想使用SQLAlchemy
异步编程的话,只能使用aiomysql.sa