各种链接
官方文档:http://docs.jinkan.org/docs/flask/,*有一点点枯燥……
教程:http://www.pythondoc.com/flask-mega-tutorial/index.html,*一个写的不错的民间教程,一步步介绍了怎么建立一个工程,对于代码结构有讲解
flask-WTF:http://docs.jinkan.org/docs/flask-wtf/,*flask表单库
jinjia2文档:http://docs.jinkan.org/docs/jinja2/
jinjia教程:https://zhuanlan.zhihu.com/p/23669244
flask-bootstrap:http://pythonhosted.org/Flask-Bootstrap/,*一个把flask和bootstrap结合的库
bootstrap官网:http://v3.bootcss.com/getting-started/,*里面有很多模板
Step1. virtualenv
道理我都懂,然而这tm到底有啥用啊……安装了那么多年的包,还没见过冲突的,而且我电脑里面python的包不就是venv里面的包么?外面如果要冲突里面就不了?最重要的是界面还那么丑……
其中一点比较有趣的是. bin/activate 命令激活venv虚拟环境,其中点和source命令相似,将bin目录下activate这个bash文件导入,bash文件中将bin目录路径加在了PATH命令之前,已完成重定向python相关路径.
Step2. Hello World
照着链接2一步一步写,比较有趣的一点是工程的架构。
这是官方文档的HelloWorld
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()
这是工程化的Helloworld目录架构
app |-- __init__.py |-- static |-- templates | `-- index.html `-- views.py run.py
__init__.py
from flask import Flask app = Flask(__name__) from app import views
views.py
from app import app @app.route('/') @app.route('/index') def index(): return "Hello, World!"
run.py
#!venv/bin/python from app import app app.run(debug = True,host='0.0.0.0')
by the way,里面的循环引用关系实在是没有弄懂
Step3.服务器编写
jinjia2
jinjia2是flask的渲染引擎,自动在app/templates里面搜寻模板文件。
Bootstrap
flask里面的bootstrap貌似比一般nodejs啥的要简单一些,不需要自己配置static文件,直接pip install flask-bootstrap 即可。
将__init__.py改写为
from flask import Flask from flask_bootstrap import Bootstrap app = Flask(__name__) Bootstrap(app) app.config.from_object('config') from app import views
注意,之前将Bootstrap(app) 放在run.py中出现了问题,可能是import views的问题
发现现在debug模式没法及时刷新了……不知道啥原因