《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 # 查看当前版本号
执行过第一个后生成一个空的目录
执行第二个后会在空目录生成你的迁移文件
之后的操作如上述的命令

浙公网安备 33010602011771号