2020-06-17--flask项目02---项目准备

2020-06-17  本文已影响0人  program_white

配置静态文件和模板文件

在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文件。
使用其他浏览器运行(谷歌浏览器有缓存功能):


flask项目架构

上一篇下一篇

猜你喜欢

热点阅读