python-flask 完整项目结构搭建

python-flask 完整项目结构搭建_第1张图片

Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能

此文就已我一个初学者的视角来学习搭建flask框架

工具:pycharm pip

创建项目

  • 打开pycharm创建flask项目

python-flask 完整项目结构搭建_第2张图片

  • 点击Create进行下一步

    python-flask 完整项目结构搭建_第3张图片

  • 来看下文件的目录结构

文件夹:

static:存放项目静态资源文件的地方如css js images

templates:模板文件夹,存放你的html文件

venv:项目的python虚拟环境

文件:

app.py:项目的入口.通常用来写视图函数,和配置项目相关参数

  • 不过作为一个web项目有这些简单的配置是远远不够的,我们还需要对项目进行一些通用配置
pip install flask-SQLAlchemy
pip install flask-pymysqldb
pip install flask-Script
pip install flask-migrate
  1. 新建一个config.py文件在项目根目录下 (用于配置项目相关信息)
  2. 新建一个exts.py文件在项目根目录下 (设置全局数据库工具,避免多次实例化SQLAlchemy)
  3. 新建一个manage.py文件在项目根目录下 (绑定app与SQLAlchemy实例,同时为添加项目脚本工具)
  • 代码如下

    config.py: (配置项目)

    DIALECT = 'mysql'
    DRIVER = 'pymysql'
    USERNAME = 'root'
    PASSWORD = 'root'
    HOST = '127.0.0.1'
    PORT = '3306'
    DATABASE = 'flasktest'
    
    SQLALCHEMY_DATABASE_URI = '{}+{}://{}:{}@{}:{}/{}'.format(
        DIALECT,
        DRIVER,
        USERNAME,
        PASSWORD,
        HOST,
        PORT,
        DATABASE
    )
    
    # 便于调试
    TEMPLATES_AUTO_RELOAD = True
    SEND_FILE_MAX_AGE_DEFAULT = 0
    SQLALCHEMY_TRACK_MODIFICATIONS = True
    

    exts.py:

    from flask_sqlalchemy import SQLAlchemy
    
    db = SQLAlchemy()
    

    manage.py

    from flask_script import Manager
    from flask_migrate import Migrate, MigrateCommand
    from exts import db
    from app import app
    
    manage = Manager(app)
    migrate = Migrate(app, db)
    manage.add_command('db', MigrateCommand)
    
    if __name__ == '__main__':
        manage.run()
    
  • 完成上述操作之后,因为我们需要创建一个实体文件夹,用于存放与数据表对应的实体类:

    在这里插入图片描述

  • 新建实体类;设置相关属性字段

    from exts import db 
    
    # ORM
    
    class KFCInfo(db.Model):
        __tablename__ = 'kfcinfo'
        id = db.Column(db.Integer, primary_key=True, autoincrement=True)
        storename = db.Column(db.String(50))
        provincename = db.Column(db.String(20))
        cityname = db.Column(db.String(20))
        addressdetail = db.Column(db.String(400))
        lnalats = db.Column(db.String(50))
    
  • 完成这一步之后我们就可以进行migrate数据库迁移操作了

    python manage.py db init        //初始化
    python manage.py db migrate		//生成迁移文件夹migrations
    python manage.py db upgrage		//映射到数据库表中
    
  • 至此,项目已经完成一大部分了

接下来有时间我会补充blueprint (蓝图)的相关配置说明)

这是我的一个python项目地址,请多多指教

https://github.com/Crack-DanShiFu/CrawlerCenter

你可能感兴趣的:(爬虫,python,python,flask,migrate)