首先,创建一个Flask的项目,在选择编译环境的时候,可以选择新建一个虚拟的编译环境,关于创建虚拟环境,以前写过一篇博客,需要的可以参考:(4条消息) python搭建虚拟环境_Kisskiss_v的博客-CSDN博客_python虚拟环境搭建
再项目路径下面新建两个文件夹,一个static用于存放静态文件,默认情况下网站所用到的静态文件资源全部存放到static文件夹下,然后再static文件夹下面还可以创建其他文件夹,将css,js文件区分开来,为了更好的管理文件。
templates模板文件,也就是html文件,需要放到templates文件夹中。 当然在'Flask(__name__,template_folder)'可以来修改模板的 地址,但是不推荐。通过'render_template'来渲染模板。如果想要传递变量到模板中,可以把变量定义成字典,然后在 'render_template'中,通过关键字参数的方式传递过去。'render_ template('',**context)'
在app.py中:
from flask import Flask, jsonify, request, redirect, url_for,render_template
from . import config
# 使用Flask创建一个app对象,并且传递__name__参数
app = Flask(__name__)
# 所有的配置项都放在config中
app.config.from_object(config)
names = [{"id": 1, "name": "jack"},
{"id": 2, "name": "rose"},
{"id": 3, "name": "Chris"},]
#app.route:设置访问的url,这里设置成一个根路径
@app.route("/name/list/")
def book_list():
return jsonify(names)
# 1.如果只是需要从服务器上获取数据,一般都是用GET请求
# 2.如果前端需要把数据发送给服务器,一般用POST请求
# 3.在@app.route上,添加methods参数,这个参数是一个列表类型,可以传递多个
@app.route("/name/<string:name_id>", methods=['GET', 'POST'])
def name_detail(name_id):
for name in names:
if name_id == str(name["id"]):
return name
return f"{name_id}的姓名没有找到!"
@app.route("/profile")
def profile():
#参数传递的两种形式:
#1.作为url的组成部分:/name/1
#2.查询字符串:/book?id=1
user_id=request.args.get("id")
if user_id:
return "用户个人中心"
else:
# 重定向到index函数的路径下
return redirect(url_for("index"))
if __name__ == '__main__':
app.run()
config.py:
# Flask中的所有配置项都是大写字母
JSON_AS_ASCII=False
base.html根模块,后面的index.html引用的该模块渲染的页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- {% block title %}{% endblock %}:标题块; -->
<title>{% block title %}{% endblock %}</title>
{% block head %}{% endblock %}
</head>
<body>
<ul>
<li>
<a href="/">首页</a>
</li>
<li>
<a href="/control">控制</a>
</li>
<li>
<a href="/about">关于</a>
</li>
</ul>
{% block body %}{% endblock %}
<footer style="background-color: yellow">i am footer</footer>
</body>
</html>
在其他的html模板文件中使用{% extends "base.html"%}将跟文件引入,就可以直接使用模板的元素
<!--引入跟文件-->
{% extends "base.html"%}
<!--引入标题块-->
{% block title %}
<!-- 引入后自定义的额外内容-->
my homepage
{% endblock %}
{% block head %}
<link rel="stylesheet" href="{{ url_for('static',filename='css/index.css')}}">
{% endblock %}
{% block body %}
<h1>i am homepage</h1>
{% endblock %}
flask运行程序的几种方式:
1、在app.py可以直接运行程序
2、在控制台输入命令:python app.py
3、官方推荐:
$ export FLASK_APP=app.py
$ python -m flask run --host=0.0.0.0
在windows上的是set而不是export
4、在控制台输入如下指令:
python manager.py shell
app.run(host=0.0.0.0)
如有错误望指正,谢谢~