25、Flask实战第25天:项目结构搭建

摘要:
创建虚拟环境bbs,并安装flask framework#cmd。进入DOS窗口mkvirtualenvbbspipinstallflask。在本地磁盘D:bbs上创建一个新的项目目录,打开pychar,创建一个flask项目,并创建两个新文件config。py(配置文件),exts py(用于第三方库)项目分为前台、后台和公共。因此,这里配置了上述三个蓝图,以创建一个名为

创建一个虚拟环境bbs,并安装flask框架

#cmd进入DOS窗口

mkvirtualenv bbs
pip install flask

在本地磁盘D新建项目目录:bbs

打开pycharm,创建flask项目

25、Flask实战第25天:项目结构搭建第1张

新建两个文件,config.py( 配置文件)、exts.py(用于第三方库)

项目分为前台(front)、后台(cms)、公共(common)

因此这里配置上面3个蓝图

新建一个python package命名为apps,在apps下新建三个python package分别命名为:cms、common、front

这3个蓝图都会有自己的数据模型和视图,则在它们各自下新建文件models.py、views.py,前台和后台肯定会有表单验证,因此也新建forms.py

25、Flask实战第25天:项目结构搭建第2张

cms.view.py

from flask import Blueprint

bp = Blueprint('cms', __name__, url_prefix='/cms')

@bp.route('/')
def index():
    return 'cms index'

common.py

from flask import Blueprint

bp = Blueprint('common', __name__, url_prefix='/common')

@bp.route('/')
def index():
    return 'common index'

front.py

from flask import Blueprint

bp = Blueprint('front', __name__) #因为前台是直接访问就不用加url_prefix

@bp.route('/')
def index():
    return 'front index'

编辑cms.__init__.pycommon.__init__.pyfront.__init__.py,这样做的好处就是可以这样导入蓝图:from apps.cms import bp

from .views import bp

编辑bbs.py注册蓝图,该文件不编辑任何视图及url

from flask import Flask
import config
from apps.cms import bp as cms_bp
from apps.common import bp as common_bp
from apps.front import bp as front_bp

app = Flask(__name__)
app.config.from_object(config) #引入配置文件

app.register_blueprint(cms_bp)
app.register_blueprint(common_bp)
app.register_blueprint(front_bp)

if __name__ == '__main__':
    app.run()

编辑config.py开启DEBUG模式

DEBUG = True

最后启动项目

25、Flask实战第25天:项目结构搭建第3张

25、Flask实战第25天:项目结构搭建第4张

25、Flask实战第25天:项目结构搭建第5张

配置数据库信息创建数据库

MySQL创建数据库bbs

address: 127.0.0.1:3306
database: bbs
username: root
password: 123456

安装相关的库

workon bbs #进入虚拟环境
pip install pymysql
pip install flask-sqlalchemy
pip install flask-script
pip install flask-migrate

编辑配置文件config.py配置数据库连接信息

DEBUG = True

#MySQL Database
HOST = '127.0.0.1'
PORT = '3306'
USERNAME = 'root'
PASSWORD = '123456'
DATABASE = 'bbs'

DB_URI = 'mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset-utf8'.format(username=USERNAME,
                                                                                        password=PASSWORD,
                                                                                        host=HOST,
                                                                                        port=PORT,
                                                                                        db=DATABASE)
SQLALCHEMY_DATABASE_URI = DB_URI
SQLALCHEMY_TRACK_MODIFICATIONS = False  

编辑exts.py初始化SQLAlchemy

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

创建一个manage.py用来写迁移脚本

from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from bbs import app
from exts import db

manager = Manager(app)

Migrate(app, db)
manager.add_command('db', MigrateCommand)


if __name__ == '__main__':
    manager.run()

在主程序bbs.py给db传入app

from exts import db
...

db.init_app(app)

初始化迁移脚本

D:bs>workon flask-env
(flask-env) D:bs>python manage.py db init

25、Flask实战第25天:项目结构搭建第6张

免责声明:文章转载自《25、Flask实战第25天:项目结构搭建》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇(转)js jquery.qrcode生成二维码 带logo 支持中文[#Linux] CentOS 7 美化调优下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

浏览器访问svn

文章转自https://www.cnblogs.com/ayanmw/archive/2011/12/19/2294054.html 你看到的这个文章来自于http://www.cnblogs.com/ayanmw 基本的安装包有: subversion /httpd/ svn的httpd的mod_dav_svn mod_authz_svn 两个模块.(...

Axios源码阅读笔记#1 默认配置项

Promise based HTTP client for the browser and node.js 这是 Axios 的定义,Axios 是基于 Promise,用于HTTP客户端——浏览器和 node.js 的库 。Github:https://github.com/mzabriskie/axios。 官方文档中 Axios 的 feature...

网络_01 基本配置

一.交换机工作模式的进入与退出 Switch>enable进入特权模式 Switch#configure terminal 进入全局配置模式 Switch(config)#interface fastEthernet 0/1 进入接口模式 退出:exit(e) 二.基本配置信息 Switch(config)# hostname s1 配置主机名 Sw...

Qt工程文件Pro介绍(转)

转载请注明:http://blog.163.com/hu_cuit/blog/static/122849143201127104232142/ 我也才开始学习QT的菜鸟。但是前几天有同学叫我给他讲一下QT的基本的编程。在过程中我发现了自己的不足,这个要改进。因为我相信我会变成老鸟的。当然我发现同学对QT的工程文件不是很了解,又恰好我以前研究过,看过一些资料...

CentOS 7 下编译安装lnmp之PHP篇详解

一、安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二、PHP下载 官网 http://www.php.net/downloads.php 下载 php-7.3.0.tar.bz2 至 /usr/local/src 目录下 解压并移动至...

vue中使用ueditor富文本编辑框

1.把下载的Ueditor资源,放入静态资源static中。 修改ueditor.config.js中的window.UEDITOR_HOME_URL配置,如下图: 2.在main.js中引入以下文件: import '../static/UE/ueditor.config.js'import '../static/UE/ueditor.all.min...