所有人都不许学Java了,都来学Python!
如果不来学的话请网爆我的老师---蔡老师
Flask的前世姻缘
我不知道,没啥用,要学好这个框架,其实多读书,多看报就行了,真心想了解的话!
创建Flask项目
第一步
点击File,点击NewProject
第二步
创建成功
简单不?都给我去学习Python!!!!(可以网爆我的老师,但是不能黑我的哥哥)
学习Flask
整体代码
from flask import Flask
from flask import render_template
from flask import request
app = Flask(__name__)
@app.route('/')
def hello_world(): # put application's code here
return render_template('test.html')
@app.route('/detail/<id>/<name>')
# http://127.0.0.1:8085/detail/5/6666 这种形式
def getId(id, name):
return render_template('test.html', id=id, name=name)
@app.route('/test')
# http://127.0.0.1:8085/test?id=5&name=box&password=666 使用的是query的拼接方式
# 使用的request中的args.get('字段')方式获取这个字段的值
def getQuery():
id = request.args.get('id')
name = request.args.get('name')
password = request.args.get('password')
return render_template('user.html', id=id, name=name, password=password)
# 这个地方主要是继承的使用方式
@app.route('/child')
def getExtend():
return render_template('child.html')
@app.route('/static')
def getImage():
return render_template('image.html')
if __name__ == '__main__':
# 启动方法
app.run()
解释
根路径
@app.route('/')
def hello_world(): # put application's code here
return render_template('test.html')
假设服务是http://127.0.0.1:8085
那输入上面的这个路径就会使用render_template工具,随后去寻找test.html文件,将test.html文件的内容进行渲染在页面,下面提供的是test.html文件的内容。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>你好</div>
<div>{{ id }}</div>
<div>{{ name }}</div>
</body>
</html>
传参方式
@app.route('/detail/<id>/<name>')
# http://127.0.0.1:8085/detail/5/6666 这种形式
def getId(id, name):
return render_template('test.html', id=id, name=name)
@app.route('/test')
# http://127.0.0.1:8085/test?id=5&name=box&password=666 使用的是query的拼接方式
# 使用的request中的args.get('字段')方式获取这个字段的值
def getQuery():
id = request.args.get('id')
name = request.args.get('name')
password = request.args.get('password')
return render_template('user.html', id=id, name=name, password=password)
不能说好理解,只能说非常容易,主要就是request工具获取参数和路径后面直接拼接参数的两种获取方式
加载静态资源
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='css/index.css') }}">
</head>
<img class="image" src="{{ url_for('static',filename='image/react.png') }}" />
</body>
</html>
使用的方式是url_for的方式去展示静态资源
语法(拿html解释)
<img class="image" src="{{ url_for('static',filename='image/react.png') }}" />
继承
father.html
<!-- base.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}My Website{% endblock %}</title>
</head>
<body>
<header>
<h1>欢迎来到我的网站</h1>
</header>
<main>
{% block content %}
<!-- 默认内容 -->
{% endblock %}
</main>
<footer>
<p>版权所有 © 2023</p>
</footer>
</body>
</html>
child.html
<!-- child.html -->
{% extends "father.html" %}
{% block title %}子页面标题{% endblock %}
{% block content %}
<h2>这是子页面</h2>
<p>这里是子页面的内容。</p>
{% endblock %}
测试效果:访问http://127.0.0.1:8085/child
# 这个地方主要是继承的使用方式
@app.route('/child')
def getExtend():
return render_template('child.html')