《flask 新闻项目(创建项目)》

新闻项目:

创建项目的基础python基础文件manager.py

写入flask、创建app、写入路由、定义视图函数、返回页面,并让你的项目“run”起来

from flask import Flask
app = Flask(__name__)

@app.route("/")  # 写入路由
def index():  # 定义视图
    return "Hello,World"


if __name__ == '__main__':  # 写入主函数
    app.run()

在做完这一操作之后,你已经开启了你项目的第一步。

 

配置你的项目:

config配置类:

定义一个类(class)并为它取名为Config,里面是对你的flask进行的基础配值

class Config:
    DEBUG = True
    SQLALCHEMY_DATABASE_URI = "mysql://root:1322@127.0.0.1:3306/flask_new"
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = "6379"
    SECRET_KEY = "DS&*(%^&*()_AD*++*/SD@#$%^&*(S.AS,DA+-/*+-SMINA./-=00!@#$%^&*()_+31=21/**/X()-+-+-+--_)(*&^%$#@#$^&!@#$~~!C"
    SESSION_TYPE = 'redis'
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT)
    SESSION_USE_SIGNER = True
    PERMANENT_SESSION_LIFETIME = 60 * 60 * 24
    LEVEL = logging.DEBUG

1、开启DEBUG 

2、配置你的数据库(SQLALCHEMY_DATABASE_URI:用于连接数据的数据库)

3、配置是否追踪对象(数据库)(SQLALCHEMY_TRACK_MODIFICATIONS :追踪对象的修改并且发送信号,可以开启但会占用额外的资源)

4、设置redis的主机号(REDIS_HOST用它来存储主机号(host)默认值为:localhost)

5、 设置端口号(REDIS_PORT redis的默认端口为6379)补充:db(库设置默认为0)

6、设置密钥(SECRET_KEY Flask(以及相关的扩展扩展)需要进行加密所以需要这个密钥SECRET_KEY 比如,会议、Cookies相关的...)

7、设置session保存的位置(设置为用redis存储session的信息)

8、设置该参数连接哪个redis(在StrictRedis中设置redis的主机号,端口号,和库名)

9、是否对发送到浏览器上session的cookie值进行加密(设置为开启)

10、以 datetime.timedelta 对象控制长期会话(SESSION)的生存时间(设置为1天)

11、创建一条严重级别为DEBUG的日志记录

 

导包并注册app:

from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from flask_sqlalchemy import SQLAlchemy
from redis import StrictRedis
from flask_session import Session
from flask_wtf.csrf import generate_csrf
 
 
app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)
sr = StrictRedis(host=config.REDIS_HOST, port=config.REDIS_PORT, decode_responses=True)
Session(app)
CSRFProtect(app)
Migrate(app, db)
manager = Manager(app)
manager.add_command("mysql", MigrateCommand)

1、第一个包导入Manager它可以以脚本命令的方式执行你的项目(方便之后的文件迁移)

注:后面的app.run()要更改:

if __name__ == '__main__':
    print(app.url_map) #查看路由
    manager.run()

(在使用falsk_sqlalchemy时,采用'db.create_all'在后期修改数据库表字段的时候,不会自动的映射到数据库中,必须删除表)

2、第二个包导入为了方便我们的数据库操作(它可以在我们每次修改过后(模型类class)将字段映射到数据库中

3、为了数据库的连接和使用你需要它(flask_sqlalchemy )

3、为了redis 的连接和使用你需要它(StrictRedis )

4、为了更安全的保护用户的信息,使用第三方的组件把Session存入数据库中(flask_Session)

5、通过flask_wtf这个包来保护表单免受csrf的攻击

导包暂时到此结束;

注册app

1、注册app

2、应用配置类

3、注册数据库

4、注册redis数据库

 5、把app传入Session中做处理

6、注册CSRF保护

1、迁移(传入并处理app和db)

2、注册并赋值给manager

3、添加脚本命令

当你的这些都完成之后你就可执行迁移了:

迁移的命令如下(在你的执行文件下的执行你的迁移操作):

python 执行文件名 你声明的脚本命令 init # 创建存放目录
python 执行文件名 你声明的脚本命令 migrate -m "描述信息" # 生成迁移文件
python 执行文件名 你声明的脚本命令 upgrade # 执行最新建立的迁移文件,生成数据库
python 执行文件名 你声明的脚本命令 downgrade # 回退版本
python 执行文件名 你声明的脚本命令 history # 查看历史迁移记录
python 执行文件名 你声明的脚本命令 upgrade 以后的版本号
python 执行文件名 你声明的脚本命令 downgrade 以前的版本号
python 执行文件名 你声明的脚本命令 mysql current # 查看当前版本号

 

执行过第一个后生成一个空的目录

执行第二个后会在空目录生成你的迁移文件

之后的操作如上述的命令

posted @ 2021-09-17 11:23  enken  阅读(105)  评论(0)    收藏  举报