flask项目1实战:1、项目准备(二)工程开发环境准备(待进一步细化完善)

本文档详细介绍了使用Flask框架搭建项目的全过程,包括创建虚拟环境、安装Flask及其依赖包,创建Flask工程,配置环境如数据库(MySQL、Redis)、session、日志,并通过蓝图方式提供静态HTML页面。此外,还涉及数据库模型准备、数据库迁移以及项目开发过程中可能遇到的问题和解决方法。
摘要由CSDN通过智能技术生成

在这里插入图片描述

(根据居然老师直播课内容整理)

一、准备工作

  • 经过分析,项目需要用f以下技术
    • lask框架前后端分离
    • mysql数据库
    • redis数据库
    • 工程日志
    • 前端静态文件

1.创建虚拟环境

pipenv shell

2、安装Flask框架及相关包

  • 需要用到以下安装包
    • Flask框架
    • flask-sqlalchemy 数据库连接
    • 2.3 redis 数据库连接
    • 2.4 flask-wtf :表单处理
    • 2.5 flask-session :session 和 cookies应用
pip install flask 
pip install flask-sqlalchemy
pip install redis
pip install flask-wtf
pip install flask_session

3、创建Flask工程

二、配置环境

  • 根据项目分析,项目需要准备以下内容

    1. flask框架
  • 2、mysql

  • 3、redis

  • 4、session:参数SESSION_TYPE和SESSION_REDIS保存到redis数据库中,并对session签名

  • form验证表单需要加密

  • flask框架入口文件一般用manage.py,现在把所有可能用的到东西都写到一个入口文件,再进行拆分

1、入口文件准备

  • 入口文件需要准备以下内容:
    1、配置参数:定义成一个配置类,保存配置参数
  • mysql数据库配置参数
    • 安装并启动mysql数据库,并定义相关配置参数
  • redis数据库配置参数:注册时可能会用到图片和短信验证,保存到redis数据库中
    • 安装redis数据库
  • session保存redis数据库中时,需要配置
    2、加载配置文件
    3、创建mysql数据库
    4、创建redis数据库
    5、session绑定app
    6、form验证表单 wtf csrf
# manage.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_session import Session
import redis
from flask_wtf import CSRFProtect


app=Flask(__name__)

class Config():
    """配置信息"""
	SECRET_KEY="ASDFLKASDKJF%AKLSDXO$IPPIUF"  # 字符串随便设,用于session签名使用
    # mysql数据库配置
    # 连接数据库
    MYSQL_HOSTNAME = '127.0.0.1'
    # 数据库
    MYSQL_DATABASE = 'testdb'
    # 端口
    MYSQL_PORT = 3306
    # 用户名和密码
    MYSQL_USERNAME = 'root'
    MYSQL_PASSWORD = 'root'
    # mysql+pymysql://用记名:密码@址址:端口/数据库
    DB_URL = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(MYSQL_USERNAME, MYSQL_PASSWORD, MYSQL_HOSTNAME, MYSQL_PORT, MYSQL_DATABASE)

    # redis 配置
    REDIS_HOSTNAME="127.0.0.1"
    REDIS_PORT=6379

    # flask-session
    SESSION_TYPE = 'redis'
    SESSION_REDIS = redis.Redis(host=REDIS_HOSTNAME, port=REDIS_PORT)
    SESSION_USE_SIGNER = True	# session 签名
    PERMANENT_SESSION_LIFETIME = 86400  # session生命周期,单位是秒,1天=60*60*24

# 加载配置参数
app.config.from_object(Config)

# 建立mysql数据库对象
db=SQLAlchemy(app)


# 创建Redis
redis_store = redis.Redis(host=Config.REDIS_HOSTNAME, port=Config.REDIS_PORT)

# session
Session(app)

# post请求  wtf  csrf
CSRFProtect(app)

app.route("/")
def index():
    return "hello world!"

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

2、入口文件拆分

2.1 拆分配置文件

  • 项目配置文件一般都是单独的文件,故把 配置类拆分到配置文件中
  • 项目一般都会分为开发环境和生产环境,所以再创建两个类,用于区分开发和生产环境,有些参数都是共用,所以两个类共用公共部分基类
  • 加载配置文件时,怎么区分哪个是生产环境哪个是开发环境,有两种方式,一般对app定义采用工厂模式,传递参数,在函数内进行区分
    • 方式一:用if判断进行区分
    • 方式二:用字典引用
2.1.1 拆分后的配置文件
import redis

class Config():
    """配置信息"""
    SECRET_KEY = 'ASDAXCWE5ERTFG%%DAS34'   # 这个字符串自己随便写,用于session加密

    # mysql配置
    MYSQL_HOSTNAME = '127.0.0.1'
    MYSQL_DATABASE = 'testdb'
    MYSQL_PORT = 3306
    MYSQL_USERNAME = 'root'
    MYSQL_PASSWORD = 'root'
    # mysql+pymysql://用记名:密码@址址:端口/数据库
    DB_URL = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(MYSQL_USERNAME, MYSQL_PASSWORD, MYSQL_HOSTNAME, MYSQL_PORT,MYSQL_DATABASE)


    # redis 配置
    REDIS_HOSTNAME = "127.0.0.1"
    REDIS_PORT = 6379

    # flask-session  session保存到redis中
    SESSION_TYPE = 'redis'

    SESSION_REDIS = redis.Redis(host=REDIS_HOSTNAME, port=REDIS_PORT)
    SESSION_USE_SIGNER = True               # 对session签名,即加密
    PERMANENT_SESSION_LIFET
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值