Flask web开发之路六
紧接着上篇文档,写模板继承和block,URL链接和加载静态文件
模板继承和block
项目结构

主app文件代码:
from flask import Flask,render_template app = Flask(__name__) #class Person(object):
#name = ''
#age = 0 #class Student(Person):
#pass @app.route('/')
def index():
return render_template('index.html') @app.route('/login/')
def login():
return render_template('login.html') if __name__ == '__main__':
app.run(debug=True)
base.html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %}</title>
<style>
.nav{
background: #000000;
height:100px;
}
ul{
overflow:hidden;
}
ul li {
float:left;
list-style:none;
padding:0 10px;
line-height:65px;
}
}
ul li a{
color: #ffffff;
}
</style>
</head>
<body>
<div class="nav">
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">发布问答</a></li> </ul>
</div>
{% block main %}{% endblock %}
</body>
</html>
index.html代码:
{% extends 'base.html' %}
{% block title %}
首页
{% endblock %}
{% block main %} <hi>这是首页</hi> {% endblock %}
login.html代码:
{% extends 'base.html' %}
{% block title %}
登录
{% endblock %}
{% block main %}
<hi>这是首页</hi>
{% endblock %}
### 继承和block:
1. 继承作用和语法:
* 作用:可以把一些公共的代码放在父模板中,避免每个模板写同样的代码。
* 语法:
```
{% extends 'base.html' %}
```
2. block实现:
* 作用:可以让子模板实现一些自己的需求。父模板需要提前定义好。
* 注意点:字模板中的代码,必须放在block块中。
URL链接和加载静态文件
项目结构

主app文件代码:
from flask import Flask,render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/login/')
def login():
return render_template('login.html')
if __name__ == '__main__':
app.run(debug=True)
index.html代码;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="{{ url_for('static',filename='css/index.css') }}">
<script src="{{ url_for('static',filename ='js/index.js') }}"></script>
</head>
<body>
<a href="{{ url_for('login') }}">登录</a>
<img src="{{ url_for('static',filename= 'images/zhuanli.jpg') }}" alt="">
</body>
</html>
login.html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>这是登录页面</h1>
</body>
</html>
CSS文件代码:
a{
background: red;
}
### 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开发之路六的更多相关文章
- Flask web开发之路九
flask_scripts介绍 项目结构如下: flask_script_demo.py文件: from flask import Flask app = Flask(__name__) @app.r ...
- Flask web开发之路一
之前学过一段时间的flask,感觉还是挺好用的,自己的专利挖掘项目也想这个web框架来搭建,于是重新开始基础学习 环境:win10,python3.6,pycharm2017,虚拟环境virtuale ...
- Flask web开发之路十四
今天开始Flask的实战,创建一个项目,实现包括用户登录.注册.注销.发表博客.评论以及检索等功能 首先给出项目结构: 1.config.py文件: 存放各种配置信息 import os # dial ...
- Flask web开发之路十三
g对象 ### 保存全局变量的g属性:g:global1. g对象是专门用来保存用户的数据的.2. g对象在一次请求中的所有的代码的地方,都是可以使用的. 项目结构: g_demo.py文件代码: f ...
- Flask web开发之路十二
ge请求和post请求 ### get请求和post请求:1. get请求: * 使用场景:如果只对服务器获取数据,并没有对服务器产生任何影响,那么这时候使用get请求. * 传参:get请求传参是放 ...
- Flask web开发之路十一
首先写一下cookie和session的概念,然后是Flask中session的工作机制以及操作session ### cookie: 1. `cookie`出现的原因:在网站中,http请求是无状态 ...
- Flask web开发之路十
首先介绍循环引用的问题: 当一个模块需要引用另一个模块的类,而另一个模块又需要引用这个模块的类时,就出现了循环引用,而没法导入类,这时候可以切断其中一条引用路径,增加一个模块 项目结构: models ...
- Flask web开发之路八
今天写Flask_SQLAlchemy的外键及其关系 ### Flask-SQLAlchemy外键及其关系: 主app文件代码: from flask import Flask from flask_ ...
- Flask web开发之路七
今天写SQLAlchemy数据库 首先介绍ORM的概念: ORM,Object类,Relationship:关系,Mapping:映射,也就是模型关系映射 flask-sqlalchemy是一套ORM ...
随机推荐
- hash bucket
什么是bucket bucket的英文解释: Hash table lookup operations are often O(n/m) (where n is the number of objec ...
- Java的oauth2.0 服务端与客户端的实现
oauth原理简述 oauth本身不是技术,而是一项资源授权协议,重点是协议!Apache基金会提供了针对Java的oauth封装.我们做Java web项目想要实现oauth协议进行资源授权访问,直 ...
- SimpleCaptcha生成图片验证码内容为乱码
转自:https://blog.csdn.net/wlwlwlwl015/article/details/51482065 前言 报表中发现有中文乱码和中文字体不整齐(重叠)的情况,首先考虑的就是操作 ...
- 一文看懂 Dubbo 的集成与使用
前言 今年年初时,阿里巴巴开源的高性能服务框架dubbo又开始了新一轮的更新,还加入了Apache孵化器.原先项目使用了spring cloud之后,已经比较少用dubbo.目前又抽调回原来的行业应用 ...
- 简单shell指令
第一部分 简单的常用指令 1.date命令 date 2.显示日历 cal 3.显示当前目录 pwd 4.切换当前工作目录 默认情况下,超级用户的主目录是/root,而普通用户的主目录是/home下 ...
- [剑指Offer]5.二维数组中的查找
题目 在一个二维数组中,每一行都依照从左到右递增的顺序排序,每一列都依照从上到下递增的顺序排序.请完毕一个函数,输入这种一个二维数组和一个整数.推断数组中是否含有该整数. 思路 [算法系列之三十三]杨 ...
- SQLServer 数据库变成单个用户后无法访问问题的解决方法
USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) FROM ma ...
- Spark 论文篇-论文中英语单词集
resilient [rɪˈzɪljənt] 能复原的;弹回的;有弹性的;能立刻恢复精神的;社会渣滓 dryad ['draɪæd] 森林女神 树妖 present [ˈprɛznt] 目前的;现在 ...
- [k8s]kube-dns/dashboard排错历险记(含sa加载用法/集群搭建)
kube-dns原理 参考: 组件架构看这个就够了 http://cizixs.com/2017/04/11/kubernetes-intro-kube-dns 设置细节看这个就够了 http://b ...
- Unsafe 学习和源码阅读
在代码中获取 Unsafe 对象的方法: // 在 AtomicInteger 里面是这么用的private static final Unsafe unsafe = Unsafe.getUnsafe ...