鸽了好长时间,没有学习和更新flask web的项目 今天又开始学习
首先在项目开始之前我们要处理好包结构
一般的包结构为
举例我们将要开始的blog
blog
|____
| forms 表单包
| ------init.py
| ------xxx.py
| models 模板包
| ------init.py
| ------xxx.py
| static 静态文件包
| ------init.py
| ------xxx.css
| ------xxx.js
| templates html文件包
| ------xxx.html
| secure 配置文件包
| ------setting.py
| ------secure.py
|________
|
|_app.py 项目入口文件
做好充足的准备 先按照包结构设置好自己的项目
如图所示
下面开始项目
1.首先设置蓝图
在blog/init.py中添加函数create_app()
为了方便观看和结构舒适,我将注册蓝图和插入蓝图分为两个函数
如下 : blog/init.py
from flask import Flask
#这是注册app的函数
def create_app():
app = Flask(__name__)
register_blue(app) #插入蓝图
return app
#这里要返回app 这个坑我纠结了好久 如果没有返回app会一直报错 没有模块 run
#这是注册蓝图的函数
def register_blue(app):
from blog.view import web
app.register_blueprint(web) #注册蓝图
然后在view的初始化文件init中 设置蓝图
如下 : view/init.py
from flask import Blueprint
web = Blueprint('web',__name__)
from blog.view import hello
# 这里是导入同文件的视图函数
视图函数
如下 : view/hello
from blog.view import web
@web.route('/') #注意 这里因为注册了蓝图 所以为@web.route......
def hello():
return '<p>你好</p>'
2.配置文件
准备配置文件 目前我们要用的配置文件不多
大致为 DEBUG=True
因为属于比较私密的内容 所以我们放到secure配置文件中
然后在create_app()中导入配置文件
如下 : blog/init.py
from flask import Flask
def create_app():
app = Flask(__name__)
--------------新添加内容在这里
app.config.from_object('blog.secure.setting')
app.config.from_object('blog.secure.secure')
--------------
register_blue(app) #插入蓝图
return app
def register_blue(app):
from blog.view import web
app.register_blueprint(web) #注册蓝图
我们运行app.py发现
* Serving Flask app "blog" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: on
* Restarting with stat
* Debugger is active! #这里表示DEBUG已经开启说明配置文件导入成功
* Debugger PIN: 309-373-038
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
3.把templates改为html文件夹
因为flask还用的是jinjia2引擎
在pycharm设置如图:
鉴于笔者的表达能力非常垃圾 我这里把包上传到码云中
码云地址为:https://gitee.com/fuyi2333/flask
有兴趣的话可以交流研究(其实只有我一个)