紧接着上篇文档,写模板继承和block,URL链接和加载静态文件

模板继承和block

项目结构

主app文件代码:

  1. from flask import Flask,render_template
  2.  
  3. app = Flask(__name__)
  4.  
  5. #class Person(object):
  6. #name = ''
  7. #age = 0
  8.  
  9. #class Student(Person):
  10. #pass
  11.  
  12. @app.route('/')
  13. def index():
  14. return render_template('index.html')
  15.  
  16. @app.route('/login/')
  17. def login():
  18. return render_template('login.html')
  19.  
  20. if __name__ == '__main__':
  21. app.run(debug=True)

base.html代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>{% block title %}{% endblock %}</title>
  6. <style>
  7. .nav{
  8. background: #000000;
  9. height:100px;
  10. }
  11. ul{
  12. overflow:hidden;
  13. }
  14. ul li {
  15. float:left;
  16. list-style:none;
  17. padding:0 10px;
  18. line-height:65px;
  19. }
  20. }
  21. ul li a{
  22. color: #ffffff;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div class="nav">
  28. <ul>
  29. <li><a href="#">首页</a></li>
  30. <li><a href="#">发布问答</a></li>
  31.  
  32. </ul>
  33. </div>
  34. {% block main %}{% endblock %}
  35. </body>
  36. </html>

index.html代码:

  1. {% extends 'base.html' %}
  1. {% block title %}
      首页
    {% endblock %}
  1. {% block main %} <hi>这是首页</hi> {% endblock %}

login.html代码:

  1. {% extends 'base.html' %}
  2. {% block title %}
      登录
    {% endblock %}
  3. {% block main %}
  4. <hi>这是首页</hi>
  5. {% endblock %}

### 继承和block:
1. 继承作用和语法:
* 作用:可以把一些公共的代码放在父模板中,避免每个模板写同样的代码。
* 语法:
```
{% extends 'base.html' %}
```
2. block实现:
* 作用:可以让子模板实现一些自己的需求。父模板需要提前定义好。
* 注意点:字模板中的代码,必须放在block块中。

URL链接和加载静态文件

项目结构

主app文件代码:

  1. from flask import Flask,render_template
  2.  
  3. app = Flask(__name__)
  4.  
  5. @app.route('/')
  6. def index():
  7. return render_template('index.html')
  8.  
  9. @app.route('/login/')
  10. def login():
  11. return render_template('login.html')
  12.  
  13. if __name__ == '__main__':
  14. app.run(debug=True)

index.html代码;

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <link rel="stylesheet" href="{{ url_for('static',filename='css/index.css') }}">
  7. <script src="{{ url_for('static',filename ='js/index.js') }}"></script>
  8. </head>
  9. <body>
  10. <a href="{{ url_for('login') }}">登录</a>
  11. <img src="{{ url_for('static',filename= 'images/zhuanli.jpg') }}" alt="">
  12. </body>
  13. </html>

login.html代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <h1>这是登录页面</h1>
  9. </body>
  10. </html>

CSS文件代码:

  1. a{
  2. background: red;
  3. }

### url链接:使用`url_for(视图函数名称)`可以反转成url。

### 加载静态文件:
1. 语法:`url_for('static',filename='路径')`
2. 静态文件,flask会从`static`文件夹中开始寻找,所以不需要再写`static`这个路径了。
3. 可以加载`css`文件,可以加载`js`文件,还有`image`文件。
```
第一个:加载css文件
<link rel="stylesheet" href="{{ url_for('static',filename='css/index.css') }}">
第二个:加载js文件
<script src="{{ url_for('static',filename='js/index.js') }}"></script>
第三个:加载图片文件
<img src="{{ url_for('static',filename='images/zhiliao.png') }}" alt="">

Flask web开发之路六的更多相关文章

  1. Flask web开发之路九

    flask_scripts介绍 项目结构如下: flask_script_demo.py文件: from flask import Flask app = Flask(__name__) @app.r ...

  2. Flask web开发之路一

    之前学过一段时间的flask,感觉还是挺好用的,自己的专利挖掘项目也想这个web框架来搭建,于是重新开始基础学习 环境:win10,python3.6,pycharm2017,虚拟环境virtuale ...

  3. Flask web开发之路十四

    今天开始Flask的实战,创建一个项目,实现包括用户登录.注册.注销.发表博客.评论以及检索等功能 首先给出项目结构: 1.config.py文件: 存放各种配置信息 import os # dial ...

  4. Flask web开发之路十三

    g对象 ### 保存全局变量的g属性:g:global1. g对象是专门用来保存用户的数据的.2. g对象在一次请求中的所有的代码的地方,都是可以使用的. 项目结构: g_demo.py文件代码: f ...

  5. Flask web开发之路十二

    ge请求和post请求 ### get请求和post请求:1. get请求: * 使用场景:如果只对服务器获取数据,并没有对服务器产生任何影响,那么这时候使用get请求. * 传参:get请求传参是放 ...

  6. Flask web开发之路十一

    首先写一下cookie和session的概念,然后是Flask中session的工作机制以及操作session ### cookie: 1. `cookie`出现的原因:在网站中,http请求是无状态 ...

  7. Flask web开发之路十

    首先介绍循环引用的问题: 当一个模块需要引用另一个模块的类,而另一个模块又需要引用这个模块的类时,就出现了循环引用,而没法导入类,这时候可以切断其中一条引用路径,增加一个模块 项目结构: models ...

  8. Flask web开发之路八

    今天写Flask_SQLAlchemy的外键及其关系 ### Flask-SQLAlchemy外键及其关系: 主app文件代码: from flask import Flask from flask_ ...

  9. Flask web开发之路七

    今天写SQLAlchemy数据库 首先介绍ORM的概念: ORM,Object类,Relationship:关系,Mapping:映射,也就是模型关系映射 flask-sqlalchemy是一套ORM ...

随机推荐

  1. Android架构初探

    #一 背景点评美团合并之后,业务需要整合,我们部门的几条业务需要往美团平台迁移,为了降低迁移成本,开发和维护成本,以及将来可能要做的单元测试,需要对架构进行相应的调整.之前的代码都堆在Activity ...

  2. Java通过JNI调用C++程序

    JNI是Java Native Interface的缩写,中文为JAVA本地调用.使用JNI可以很方便的用我们的Java程序调用C/C++程序.很多时候,某些功能用Java无法实现,比如说涉及到底层驱 ...

  3. HDU 4666 Hyperspace (最远曼哈顿距离)

    Hyperspace Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Tota ...

  4. java.lang.IllegalStateException——好头疼

    在我东,下下来一个项目总会出现启动不了的问题,这些问题往往在编译的时候发现不了,当你的服务器启动的时候,就是一片片的报错,有些问题可以通过异常的提示信息,判断出来哪里配置错了,但是也有些情况下,从异常 ...

  5. Windows 不能复制文件到远程服务器的解决办法

    1.  开始 -> 运行->浏览->C:\Windows\System32\rdpclip.exe->打开. 2. 打开资源管理器的进程可以看到 rdp复制粘贴正在运行,即可.

  6. Android studio ButterKnife插件

    1.功能:给所有的有id的控件添加注解 2.github地址 https://github.com/avast/android-butterknife-zelezny 3.插件下载地址 http:// ...

  7. ORGANISING THE TEST CASES

    ORGANISING THE TEST CASES -Test note of “Essential Software Test Design” 2015-09-24 目录 22.1 Test Cas ...

  8. (转)Windows系统白名单以及UAC机制

    用户帐户控制 深入了解 Windows 7 用户帐户控制 Mark Russinovich   概览: 标准用户帐户 用户帐户控制 内容 UAC 技术 提升与恶意软件安全性 Windows 7 中的不 ...

  9. 用panels 制作drupal首页

    1.下载zen主题 路径:https://www.drupal.org/project/zen2.“启用并设为默认”3.基于zen制作子主题 把zen目录下STARTERKIT文件夹,复制到sites ...

  10. Mysql系列三:Centos6下安装Mysql和Mysql主从复制的搭建

    一.Centos6下安装Mysql 检测下系统有没有自带的mysql:yum list installed | grep mysql, 如果已经有的话执行命令yum -y remove mysql-l ...