项目目的,最终效果是可以正常登录,对订单的增删查改,还有商家的一些基础资料录入,数据库是用mysql 数据库
项目结构是这样的,
项目结构是根据官方文档,使用工厂模式来开发
wsgi.py 的内容:
from epay import create_app
app = create_app()
从epay 的__init__.py文件夹中,导入create_app 的方法
__init__.py 的内容如下:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from epay.extendsions import db,login_manager,bootstrap,csrf
from epay.config import mysql_config
from epay.blueprints.admin import admin_bp
from epay.blueprints.auth import auth_bp
import pymysql
def create_app():
app = Flask(__name__)
app.secret_key = 'Innalhamdulillah.nahmaduhu.taalanastainubihi.wanastagfiruh!'
register_extensions(app)
register_blueprints(app)
return app
def register_extensions(app):
# 初始化 db
app.config['SQLALCHEMY_DATABASE_URI'] = mysql_config['DIALECT']+'://'+mysql_config['USERNAME']+':'+mysql_config['PASSWORD']+'@'+mysql_config['HOST']+':'+mysql_config['PORT']+'/'+mysql_config['DATABASE']+'?charset=utf8'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
# 初始化mysql
pymysql.install_as_MySQLdb()
db.init_app(app)
login_manager.init_app(app)
bootstrap.init_app(app)
csrf.init_app(app)
def register_blueprints(app):
# app.register_blueprint(blog_bp)
app.register_blueprint(admin_bp, url_prefix='/admin')
app.register_blueprint(auth_bp, url_prefix='/auth')
先看create_app(),首先初始化 Flask,然后再调用register_extensions()和register_blueprints() 两个方法,最后返回变量app,wsgi.py 就是接收了这个app,再解释register_extensions()和register_blueprints()
register_extensions():负责初始化需要的扩展,之后会单独说插件这一块
register_blueprints():简单说,就是初始化controller,并划分模块 ,可以见到现在是划分了admin,和auth 的。admin 负责后台,auth 负责后台的登录
好了,写到这里在,其实在这个时候,在__init__.py 再加上这样的代码,都可以输出Hello Wrold
@app.route('/')#路由路径
def hello_world():
return 'Hello World'
之后说的blueprint 和 插件,我都在这个目录结构的基础上解释的,之后有时间我会将源码上传
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/97984.html