前言
首先是虚拟环境的配置,因为任何一个项目,由于需求不同,所要求的版本也不同,这时候虚拟环境就是非常好的一个东西,当然在本地上配置也不是不行,但不建议。
如果不会配置虚拟环境,以下连接,希望可以帮助到你:https://blog.csdn.net/Y57657/article/details/123015643
此项目采用的是由virtualenv库的虚拟环境,接下来进入正题:
首先是我们这个项目所用到的库:
requirements.txt
alembic==0.9.9
blinker==1.4
certifi==2018.4.16
chardet==3.0.4
Flask==0.10.1
Flask-Migrate==2.1.1
Flask-MySQLdb==0.2.0
Flask-Script==2.0.6
Flask-Session==0.3.1
Flask-SQLAlchemy==2.3.2
Flask-WTF==0.14.2
idna==2.6
itsdangerous==0.24
Jinja2==2.10
Mako==1.0.7
Pillow==5.1.0
python-dateutil==2.7.2
python-editor==1.0.3
qiniu==7.2.0
redis==2.10.6
redis-py-cluster==1.3.4
requests==2.18.4
six==1.11.0
SQLAlchemy==1.2.6
urllib3==1.22
Werkzeug==0.14.1
WTForms==2.1
然后我们进入通过virtualenv库配置的虚拟环境
进入如图所示的环境后,输入以下命令,回车,记得联网,然后我们项目所需的库就开始下载了
pip install -r C:\Users\pl197\Desktop\requirements.txt
后面的地址是你文件所在位置,你只需要将文件拖进图中的环境即可
当你的库下完后,还需要改一个库的版本,如图所示:
到此,项目所需的库已彻底配置完成,此项目我采用的是Pycharm的2017版
正题
然后打开我们尊贵的2017版Pycharm,进行项目代码的一个的配置
首先创建一个叫info的python包(自带init的py文件),进入__init__文件,配置:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from redis import StrictRedis
from flask_wtf import CSRFProtect
from flask_session import Session
# from config import DevlopmentConfig,ProductionConfig,UnittestConfig
from config import configs
def create_app(config):
app = Flask(__name__)
# 配置信息的加载
app.config.from_object(configs[config])
# 实例化SQLAlchemy
db = SQLAlchemy(app)
# 实例化redis连接对象
sr = StrictRedis(host=configs[config].REDIS_HOST, port=configs[config].REDIS_POST)
# 开启CRSF保护
CSRFProtect(app)
# 实例化session
Session(app)
return app
然后在项目的根目录下,新建一个叫config文件,配置:
from redis import StrictRedis
# 配置类
class Config:
DEBUG = True
SQLALCHEMY_DATABASE_URI = 'mysql://root:123456/@localhost:3306/news_20'
SQLALCHEMY_TRACK_MODIFICATIONS = False
SECRET_KEY = 'sdfgsdgsdfgsdfsdfsdfs'
REDIS_HOST = '127.0.0.1'
REDIS_POST = 6379
SESSION_TYPE = 'redis'
SESSION_REDIS = StrictRedis(host=REDIS_HOST,port=REDIS_POST)
SESSION_USE_SIGNER = True
PERMANENT_SESSION_LIFETIME = 60*60*24
class DevlopmentConfig(Config):
"""开发环境"""
pass
class ProductionConfig(Config):
DEBUG = False
"""生产环境"""
pass
class UnittestConfig():
"""测试环境"""
pass
configs ={
'dev':DevlopmentConfig,
'pro':ProductionConfig,
'unit':UnittestConfig
}
然后,进入我们项目初建时出现的第一个Python文件,进行配置:
from flask import Flask,session
from flask_script import Manager
from flask_migrate import Migrate,MigrateCommand
# from info import app,db
from info import create_app
app = create_app('dev')
# 集成脚本
manage = Manager(app)
# Migrate(app,db)
# manage.add_command('mysql', MigrateCommand)
@app.route('/')
def hello_world():
session["a2"] = 'HEHEHE'
return 'Hello World!'
if __name__ == '__main__':
manage.run()
到此,关于项目代码的配置类,就结束了
由于此项目用到了数据迁移,如果你在数据迁移的配置中,出现了以下bug:
c:\users\pl197\appdata\local\programs\python\python37\python.exe: can't open
此问题是你更改了项目的名字,所导致的,唯一解决办法就是,重新建一个项目,把名字设好,就OK了