flask项目:新闻信息网站1

创建项目

GitHub中create a new repository----flask_new_info
克隆到本地,在pycharm中打开
配置虚拟环境



项目下创建manage.py,添加如下代码:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
    return 'index'
if __name__ == '__main__':
    app.run()

点击运行,进入页面,如果页面中有index,就配置成功

session存储

安装Redishttps://www.jianshu.com/p/9307d4c16791

创建Redis数据库
点击connect to redis server,后输入名和host


manage.py

import redis
from flask import Flask, session
from flask_sqlalchemy import SQLAlchemy
from flask_wtf import CSRFProtect
from flask_session import Session

class Config(object):
    """工程配置信息"""
    SECRET_KEY = "EjpNVSNQTyGi1VvWECj9TvC/+kq3oujee2kTfQUs8yCM6xX9Yjq52v54g+HVoknA"
    DEBUG = True
    # 数据库的配置信息
    SQLALCHEMY_DATABASE_URI = "mysql://root:root@127.0.0.1:3306/information14"
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379
    # flask_session的配置信息
    SESSION_TYPE = "redis"  # 指定 session 保存到 redis 中
    SESSION_USE_SIGNER = True  # 让 cookie 中的 session_id 被加密签名处理
    SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT)  # 使用 redis 的实例
    SESSION_PERMANENT = False
    PERMANENT_SESSION_LIFETIME = 86400  # session 的有效期,单位是秒

app = Flask(__name__)

app.config.from_object(Config)
# 初始化数据库
db = SQLAlchemy(app)
# 初始化redis 对象
redis_store = redis.StrictRedis(host=Config.REDIS_HOST, port=Config.REDIS_PORT)
# 开启csrf保护,只做服务器验证功能,
CSRFProtect(app)
# 设置session保存指定位置
Session(app)

@app.route('/')
def index():
    session['name'] = 'ssq'
    return 'index'

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

在Navicat中创建对应的数据库



运行后进入页面没错误,Redis数据库会有数据


migrate

在manage.py中添加:

from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
# flask_script
manager = Manager(app)
# 数据库迁移
Migrate(app, db)
manager.add_command('db', MigrateCommand)

并将app.run()改成manager.run()



点击edit config...,按照下图操作


项目拆分

各司其职,方便后期维护

  • manage.py 只负责基本的启动工作
  • app 的创建在 info 下的__ init __ 中
  1. 创建config.py,将Config全部剪切其中,并将app.config全部去掉
import redis


class Config(object):
    """工程信息配置"""
    SECRET_KEY = "EjpNVSNQTyGi1VvWECj9TvC/+kq3oujee2kTfQUs8yCM6xX9Yjq52v54g+HVoknA"

    DEBUG = True
    # 导入数据库配置
    # 设置数据库连接
    SQLALCHEMY_DATABASE_URI= 'mysql://root:root@127.0.0.1:3306/information22'
    # 动态追踪设置
    SQLALCHEMY_TRACK_MODUFICATIONS = True
    # 显示原始sql
    SQLALCHEMY_ECHO = True

    REDIS_HOST = "127.0.0.1"
    REDIS_POST = 6379
    # flask_session配置信息
    SESSION_TYPE = 'redis' #指定session保存到Redis中
    SESSION_USE_SIGNER = True   #让cookie中的sessionid 被加密处理
    # 使用Redis实例
    SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_POST)
    SESSION_PERMANENT = False
    PERMANENT_SESSION_LIFETIME = 86400  #session有效期  秒

  1. 创建info包,里面会有__ init __ .py,app的创建部分全部剪切其中
from flask import Flask
from flask_session import Session
from flask_sqlalchemy import SQLAlchemy
import redis
from flask_wtf import CSRFProtect

from config import Config

app = Flask(__name__)

app.config.from_object(Config)
db = SQLAlchemy(app)
# 初始化Redis配置
redis.StrictRedis(host=Config.REDIS_HOST, port=Config.REDIS_POST)
# 开启csrf保护,只用于服务器验证功能
CSRFProtect(app)
# 设置session保存指定位置
Session(app)
  1. 最后manage.py只负责基本的启动工作
from flask import session
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from info import app, db

# flask_script
manager = Manager(app)
# 数据库迁移
Migrate(app, db)
manager.add_command('db', MigrateCommand)

@app.route('/')
def index():
    session['name'] = 'ssq'
    return 'index'

if __name__ == '__main__':
    manager.run()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容