2020-06-17--flask项目02---项目准备
2020-06-17 本文已影响0人
program_white
- 配置静态文件和模板文件
- 显示index.html
- 数据库(关联数据库,数据迁移,测试数据)
- 标签栏logo--ico
- flask项目架构
配置静态文件和模板文件
在newsInfo下新建目录--static,使用文件打开将admin和new复制进去。
再新建templates目录,操作如下:
选择模板语言jinja2:
然后在template下新建news和admin文件夹,
找到static/news/html/index.html,拖到templates/news下:
在上边的选项上打勾,因为在该文件中会引用其他文件的内容,打勾会自动改变引用的路径。不需要手动改变。
显示index.html
在上一步中我们配置了静态资源,要想把他们显示到前台页面,那么就编写试图即可。
那么就在之前的index_blue蓝图上进行编写:
index/views.py:
#为该蓝图编写视图函数
@index_blue.route('/')
def index():
return render_template('news/index.html')
运行:
数据库
关联数据库
之前有一步SQLALchemy对象db没有关联到app,要在创建app的函数中关联数据库,所以首先在newsInfo/init.py下:
1.获取SQLALchemy对象db,
db = SQLAlchemy()
2.在create_app函数中关联app对象
db.init_app(app) # 数据库对象关联app
在关联app时,要写在获取app实例和关联配置对象之后,否则会警告;
app = Flask(__name__) # 获取app实例
# 根据传进来的config_name以字典方式获取对应的类
config = config_dict.get(config_name)
# 关联config类中的配置
app.config.from_object(config)
db.init_app(app) # 数据库对象关联app
数据迁移
首先将models.py和constants.py文件复制到项目newsInfo包下,类似于django中的models.py.也就是生成表的文件。
在迁移之前将newsInfo下的models.py文件导入manage.py中
接下来就是数据库的迁移了:
分三步:
python manage.py db init
python manage.py db migtate -m"initial"
python manage.py db upgrade
terminal:
第一步:
生成文件夹migrations:
第二步:
生成迁移文件:
第三步:
数据库:
添加测试数据
在navicat中运行sql文件即可
步骤:
开始运行。
刷新数据库中的表:
标签栏logo--ico
在一些大型网站中,当访问到该网站时,在其标签栏中都会显示该网站的logo。
例如:
就是在访问index页面的同时,访问的一个静态资源:
在static/news下有一个ico文件
显示步骤:
因为实在index页面下的,所以要卸载index包下的views.py中:
#网页标签logo
@index_blue.route('/favicon.ico')
def get_web_logo():
return current_app.send_static_file('news/favicon.ico')
在该视图函数中访问该ico文件。
使用其他浏览器运行(谷歌浏览器有缓存功能):