flask框架属于小型web开发,大型的一般用Djingo,或者是java后端开发。我学习flask主要是用来学一个框架,并且在学校的一些比赛基本也可以应对。关于环境可以用virtualenv,也可以用aconda。这里是当你学习一段时间flask后有一定了解,然后想要真正做小型项目的一些方法。这里我用我写的个人博客项目进行演示。
首先是配置的安装,你需要安装好mysql(要有数据库的基础,因为你的数据一定是持久化的)。然后你需要安装一下包。flask-migrate,flask-script,flask-sqlalchemy以及pymysql。其中你需要把flask-migrate进行降级使用pip install flask-migrate==2.7.0,flask进行降级pip install flask==1.1.2,不然你可能无法运行。然后你就可以开始进行一下基础的配置了。可以把项目做成下面这样:
这里面apps是放你即将创造的对象,这个包的初始化一般比较固定,先创建一个app核心对象,再将app跟db数据库进行关联,最后使用蓝图进行关联。
#包的初始化
from flask import Flask
import settings
from apps.article.view import article_bp
from apps.user.view import user_bp
from ext import db
def create_app():
app=Flask(__name__,template_folder='../templates',static_folder='../static')#app是一个核心对象
app.config.from_object(settings.DevelopmentConfig)
db.init_app(app) #将db对象与app进行了关联
#蓝图
app.register_blueprint(user_bp)#相当于连线
app.register_blueprint(article_bp)
return app
#
#app.run()就启动服务
ext包是用来放一些第三方的包(数据库就可以在这里进行连接) 。
static是用来放一些js代码,templates放前端代码。
最后就是一些配置了。新建settings.py文件。在文件中做以下设置:
class Config:
ENV='development'
DEBUG=True
#SQLALCHEMY_DATABASE_URI='mysql+pymysql://root:root@hostip:port/database'
SQLALCHEMY_DATABASE_URI='mysql+pymysql://root:Zh250360@127.0.0.1:3306/flask'
SQLALCHEMY_TRACK_MODIFICATIONS=False
SQLALCHEMY_ECHO=True
class DevelopmentConfig(Config):
ENV = 'development'
class ProductionConfig(Config):
ENV = 'production'
DEBUG = False
其中SQLALCHEMY_DATABASE_URI的设置一定要小心。设置好后在mysql中新建好flask数据库。
最后就是app.py的一些配置了。
from flask import Flask
from flask_migrate import Migrate,MigrateCommand
from flask_script import Manager
from apps.user.model import User
from apps.article.model import Article
from apps import create_app
from ext import db
app=create_app()
manager = Manager(app=app)
#命令工具
Migrate(app=app,db=db)
manager.add_command('db',MigrateCommand)
if __name__ == '__main__':
manager.run()
这里套的manager的壳就是跟数据库命令相关的,这会在我的下一篇博客里说到。到这里简单的设置就完成了。