使用Flask创建新项目(1)

这篇博客介绍了如何使用Flask框架开始一个新的web项目。主要内容包括:通过manage.py控制台启动项目,config.py配置文件的设置,extensions.py中扩展功能的添加,以及在app的_init_.py和views文件夹中的蓝本管理和路由配置。特别提到了flask-script作为项目部署的便捷工具。

Flask开启一个新项目:

  • 简单页面的显示
  • 真实项目的创建
    1.manage.py控制台
    2.config.py配置文件
    3.extensions.py扩展文件
    4.app的init.py文件
    5.views的main.py蓝图文件
    6.views的init.py蓝图文件

文件目录结构:

目录结构

简单的页面显示:
# 导入类库
from flask import Flask

# 创建应用实例
app = Flask(__name__)

# 添加视图函数
@app.route('/')
def index():
    return '<h1>Hello Flask!</h1>'

# 运行实例
if __name__ == '__main__':
    app.run()
真实项目的创建:

关于flask-script:
flask-script就是一个flask终端运行的解析器;可以做到开发测试完毕后,不修改任何代码就可以完成项目的部署,是通过传递不同的启动参数完成的。
1.manage.py
控制台文件,用于运行整个应用程序的入口。运行的命令是在cmd中输入以下代码:

python manage.py runserver
import os
from flask_script import Manager
from flask_migrate import MigrateCommand
from app import create_app


# 调用工厂方法创建应用实例
config_name = os.environ.get('FLASK_CONFIG') or 'default'
app = create_app(config_name=config_name)


manager = Manager(app)
manager.add_command('db', MigrateCommand)


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

2.config.py:
配置文件,里面存放各种类库所需要的配置信息,使用时只需要从该文件中导入到相关文件中。

import os

#获得当前文件所在的文件夹目录
base_dir = os.path.abspath(os.path.dirname(__file__))

#
class Config:
    #秘钥设置
    SECRET_KEY = '123456'
    #数据库设置
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    #邮件发送设置
    MAIL_SERVER =  os.environ.get('MAIL_SERVER')
    MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
    MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD')
    #自动加载模板
    TEMPLATES_AUTO_RELOAD = True
    #文件上传设置
    MAX_CONTENT_LENGTH = 8*1024*1024
    UPLOADED_PHOTOS_DEST = os.path.join(base_dir, 'static/upload')

    # 初始化函数,完成特定环境的初始化操作
    @staticmethod
    def init_app(app):
        pass

# 开发环境配置
class DevelopmentConfig(Config):
    SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(base_dir, 'blog-dev.sqlite')

# 配置字典
config = {
    'default':DevelopmentConfig
}

3.extensions.py:
扩展文件,为flask提供各种扩展功能。

from flask_bootstrap import Bootstrap
from flask_sqlalchemy import SQLAlchemy
from flask_mail import Mail
from flask_moment import Moment
from flask_migrate import Migrate


# 创建对象
bootstrap = Bootstrap()
db = SQLAlchemy()
mail = Mail()
moment = Moment()
migrate = Migrate(db=db)

# 初始化
def config_extensions(app):
    bootstrap.init_app(app)
    db.init_app(app)
    mail.init_app(app)
    moment.init_app(app)
    migrate.init_app(app)

4.app文件夹中__init__.py:
初始化文件,导入扩展的功能和配置信息,然后在该文件中,针对不同的功能,进行相应的配置。

from flask import Flask
from app.config import config
from app.extensions import config_extensions
from app.views import config_blueprint


# 封装工厂方法,创建应用实例
def create_app(config_name='default'):
    # 创建实例
    app = Flask(__name__)
    # 初始化配置
    app.config.from_object(config[config_name])
    # 调用初始化函数
    config[config_name].init_app(app)
    # 配置扩展
    config_extensions(app)
    # 配置蓝本
    config_blueprint(app)
    # 返回实例
    return app
views文件夹中:

5.main.py蓝本的创建与注册:
main蓝本文件,里面存放相关的同一类路由,不同的类别的路由分开存放便于管理,注意需要蓝本注册后才能使用,

from flask import Blueprint

main = Blueprint('main', __name__)

@main.route('/')
def index():
    return '<h1>Hello Flask!</h1>'

6.__init__.py:
用于对蓝本的配置和注册:

from .main import main


# 蓝本默认配置
DEFAULT_BLUEPRINT = (
    #(蓝本,前缀)
    (main,''),

    )

#封装函数配置蓝本
def config_blueprint(app):
    for blueprint, url_prefix in DEFAULT_BLUEPRINT:
        app.register_blueprint(blueprint, url_prefix=url_prefix)

实现效果图:

实现效果图

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值