创建一个简单的flask项目步骤

创建一个flask项目目录(结构配置,SQLAlchemy,邮件,消息闪现等)

展示一下当前的目录结果

在这里插入图片描述

|-feng7309						# 项目文件夹
|--|apps						# 统一管理所有的蓝图信息
|--|--|users					# users 蓝图
|--|--|--|__init__.py			# 蓝图声明和初始化
|--|--|--|login.py				# 蓝图视图文件 执行业务逻辑
|--|--|--|for_db.py				# 测试一些数据库的使用情况
|--|--|--|send_mail.py			# 测试发送邮件
|--|utils						# 工具文件夹,保存一些工具文件
|--|--|read_config.py			# 读取配置文件的共计代码
|--|static						# 保存静态文件
|--|--|css.py					# 保存样式文件上
|--|--|js.py					# 保存js文件
|--|--|images.py				# 保存图片文件
|--|templates					# 保存依稀静态的模板文件 html
|--|base_object.py				# 用于创建一些扩展的对象,防止循环导入的现象
|--|config.ini					# 外部信息配置文件
|--|create_app.py				# 用于对flask项目进行数据初始化等信息配置,创建flask对象
|--|models.py					# 所有的数据库模型代码
|--|req.txt						# 需要的第三方包的名字和版本
|--|run.py						# 程序入口文件
|--|setting.py					# 做一些区分性的配置,分类拆分

# 以下文件不用管
# enve			我自己的虚拟环境
# migration 	迁移数据库生成的文件

1 创建空文件

# 创建一个空文件,将空文件突拖入pycharm中
# 创建   feng7309

2 创建环境创建目录结构

# 1 创建apps 文件夹,管理蓝图

# 2 创建utils 保存工具文件

# 3 创建虚拟环境 并将学你环境存放在项目目录下面   我用的是 python3.8
	并在虚拟环境终端安装flask
	pip install flask
# 4 安装指定文件的包
	pip install -r req.txt

3 项目的编写

1 创建 入口文件 run.py
2 创建 create_app.py
3 创建 settings.py
4 在utils下创建 read_config.py 文件
5 创建 config.ini 文件
6 创建 base_object.py 统一创建第三方扩展对象

3.1 create_app.py

from flask import Flask
# 创建数据库对象
def create_app():
    flask_app = Flask(__name__)
    # 加载配置
    
    # 注册蓝图

    # 配置第三方扩展
    
	# 返回 flask对象
    return flask_app

3.2 run.py

from create_app import create_app
# 导入模型类
from models import Users
# 通过 create_app 创建flask对象
app = create_app()

@app.route('/')
def index():
    return "Hello World!"
if __name__ == '__main__':
    app.run()

这样就可以运行了 ,127.0.0.1:5000 启动

3.3 配置信息,加载配置信息

config.ini
[DB]
HOST = 127.0.0.1
PORT = 3306
USERNAME = root
PASSWORD = root
NAME = flask_db
[SERVER]
DEBUG = True
HOST = 127.0.0.1
PORT = 5000
read_config.py
import configparser

class ReadConfig:
    """
    创建一个读取配置文件的类
    """
    def __init__(self):
        """
        初始化连接配置对象,和配置文件位置
        """
        self.config_path = r'C:\Users\FengHan7309\Desktop\base\feng7309\config.ini'
        self.read_config()

    def read_config(self):
        """
        读取配置文件,返回读取配置对象
        :return: 读取文件配置文件对象
        """
        self.config = configparser.ConfigParser()
        self.config.read(self.config_path)

    def config_value(self, section, key):
        """
        通过获取secton和key获取指定的值
        :param section: section
        :param key: key
        :return: value
        """
        value = self.config[section][key]
        return value
        
rc = ReadConfig()

settings.py
# -*- coding: utf-8 -*-
from utiles.read_config import rc

class BaseConfig:
    # 基础配置信息
    DEBUG = True
    SECRET_KEY = "qwertyuiopasdfghjklzxcvbnm"
    host = rc.config_value("DB", "HOST")
    port = int(rc.config_value("DB", "PORT"))
    username = rc.config_value("DB", "USERNAME")
    password = rc.config_value("DB", "PASSWORD")
    db_name = rc.config_value("DB", "NAME")

    SQLALCHEMY_DATABASE_URI = f"mysql+pymysql://{
     username}:{
     password}@{
     host}:{
     port}/{
     db_name}"
    SQLALCHEMY_TRACK_MODIFICATIONS = False


class DevelopmentConfig(BaseConfig):
    # 开发环境配置信息
    ...

class TestConfig(BaseConfig):
    # 测试环境配置信息
    ...

class ProductionConfig(BaseConfig):
    # 生产环境配置信息
    ...
修改create_app.py 进行信息的的配置
# -*- coding: utf-8 -*-
"""
from flask import Flask
import settings
from flask_sqlalchemy import SQLAlchemy

def create_app():
    flask_app = Flask(__name__)
    # 加载配置
    flask_app.config.from_object(settings.DevelopmentConfig)
    # 注册蓝图

    # 配置第三方扩展
    
    return flask_app

创建 base_object.py 创建扩展信息
from flask_mail import Mail
from flask_sqlalchemy import SQLAlchemy

# 创建数据库对象
db = SQLAlchemy()
# 创建邮件对象
mails = Mail()

4 蓝图 users

创建一个python package,并在包下面创建一个login.py

4.1 _ _init _ _.py

from flask import Blueprint

user_dp = Blueprint('user', __name__)
# 引用蓝图的视图
from . import login

4.2 login.py

from apps.users import user_dp

# 使用蓝图定义路由和视图,功能
@user_dp.route('/login', methods=['GET'])
def login():
    return "this is a login func"

4.3 修改create_app注册蓝图

from flask import Flask

import settings

from apps.users import user_dp

# 创建数据库对象

def create_app():
    flask_app = Flask(__name__)
    # 加载配置
    flask_app.config.from_object(settings.DevelopmentConfig)
    # 注册蓝图
    flask_app.register_blueprint(user_dp, url_prefix="/user")

    # 配置第三方扩展
    return flask_app

重启项目,可以在127.0.0.1:5000/user/login 可以进行login信息的访问

5 SQLAlchemy的使用和配置

5.1 相关包的安装

使用mysql创建一个数据库名为 flask-db

pip install sqlalchemy
pip install lask_migrate
pip install flask_script
pip install pymysql

5.2 models.py

run文件夹同目录下创建models.py文件

from datetime import datetime
from email.policy import default

from create_app import db

# 创建用户表 命名为 f_users
class Users(db.Model):
    __tablename__ = 'f_users'
    id = db.Column(db.Integer, pri
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值