基于python的flask框架之WEB网站搭建(anaconda)

什么是Flask?
flask是一种基于python,并且依赖于Jinja2(jinja英文直译为神社)模板引擎和WSGI(Web Server Gateway Interface,即Web服务器网关接口,其规定了web服务器和python web应用/框架之间的标准接口规范)服务的一种微型框架。
模型为:
HTTP客户端——— WEB服务器————WSGI————Flask
Flask框架——MTV(MVC)
M(models)——模型层:用于数据库的建模
T(templates)——模板层:用于处理用户显示内容
V(views)——视图层:处理与用户交互的部分内容

M(models)———模型层:用于数据库的建模、处理
V(views)——视图层:用于处理用户显示内容
C(controller)——控制器:用于处理与用户交互部分内容
flask的安装
Windows:pip install flask
Linux:sudo pip install flask
flask的基本结构
run1.py文件

from flask import Flask,render_template,url_for
app=Flask(__name__,template_folder='.')#template_folder为当前路径,如果不加这个参数,默认为同级 templates文件夹路径

路由

@app.route('/')

模板

def index():
    return render_template('index.html')

调试

if __name__ == '__main__':
	app.run(debug=True,port=5000)#port:端口,默认端口为5000,访问地址为localhost:5000/

index.html文件

<html>
<head>
<meta charset="utf-8">
<title>首页</title>
</head>
<body>
    <p>Welcome to pythoy world!</p>
</body>
</html>

在这里插入图片描述
现在我们搭建了一个非常简单的WEB网站,下面进行更深层次的总结
一、带类型转化器参数的路由
(1)带str型参数:

@app.route('/<name>/<age>')
def daicanluyou(name,age):
    return '<p>姓名:{},年龄{}</p>'.format(name,age)

运行结果
在这里插入图片描述
(2)带int型参数

@app.route('/<name>/<int:age>')
def daicanluyou(name,age):
    return '<p>姓名:{},明年年龄{}</p>'.format(name,age+1)

运行结果:
在这里插入图片描述
二、render_template()方法
(1)不带参数的render_tamplate()

@app.route('/login')
def login():
    return render_template('login.html')

login.html文件

 <html>
<head>
<meta charset="utf-8">
<title>登陆页面</title>
</head>

<body>
    用户名<input type="text/css" size="30" value="请输入用户名"><br/>
    密    码<input type="password" size="30">
</body>
</html>

运行结果:
在这里插入图片描述
(2)带参数的render_template()

@app.route('/information/<name>/<age>')
def information(name,age):
    return render_template('information.html',name=name,age=age)

information.html

<html>
<head>
<meta charset="utf-8">
<title>Information</title>
</head>
<body>
    <p>姓名:{{name}},年龄:{{age}}</p>
</body>
</html>

运行结果:
在这里插入图片描述
(3)多参数的render_tamplate()

@app.route('/duocanshu')
def duocanshu():
    name='mumu'
    age=23
    dic1={'bookname':'穆穆的眼睛','price':'99','publisher':'爱心出版社','date':'2020/12/2'}
    return render_template('duocanshu.html',params=locals())

duocanshu.html

<html>
<head>
<meta charset="utf-8">
<title>首页</title>
</head>

<body>
    <p>name:{{params.name}}</p>
    <p>age:{{params.age}}</p>
    {% for key,value in params.dic1.items() %}
        <p>{{key}}:{{value}}</p>
    {% endfor %}
</body>
</html>

运行结果:
在这里插入图片描述
三、模板

@app.route('/ziban')
def ziban():
    return render_template('ziban.html') 

index.html

<html>
<head>
<meta charset="utf-8">
<title>首页</title>
</head>
<body>
    <p>Welcome to pythoy world!</p>
    {% block container %}
    <p>这是模板</p>
    {% endblock %}   
</body>
</html>

ziban.html

{% extends'index.html' %}
{% block container %}
    <p>这是子板</p>
{% endblock %}

运行结果
在这里插入图片描述
在这里插入图片描述
四、控制结构

@app.route('/control')
def control():
    usename='mumu'
    age=22
    return render_template('control.html',params=locals())

control.html

<html>
<head>
<meta charset="utf-8">
<title>首页</title>
</head>

<body>
    {% if params.usename %}
        <p>用户名为:{{params.usename}}</p>
    {% else %}
        用户未找到<a href="{{url_for('login')}}">返回登陆界面</a>
    {% endif %}
</body>
</html>

五、访问方式
(1)POST

@app.route('/methods',methods=['POST'])
def methods():
    return render_template('index.html')

运行结果
在这里插入图片描述
网页源代码:
在这里插入图片描述
(2)POST\GET

@app.route('/methods',methods=['POST','GET'])
def methods():
    return render_template('index.html')

运行结果:
在这里插入图片描述
六、自定义错误页面

@app.errorhandler(404)
def fail(e):
    return render_template('404.html'),404

404.html

{% extends 'index.html' %}
{% block container %}
 	<li> 您想要的网页暂时未找到</li>
{% endblock %}

运行结果:
在这里插入图片描述

七、过滤器
capitalize :首字符变大写,其他字符变小写
lower:转换成小写
upper:转换成大写
title:每个单词首字符变大写
trim:去值两边的空格

@app.route('/duocanshu')
def duocanshu():
    name='mumu'
    age=23
    usename='welcome to python'
    dic1={'bookname':'穆穆的眼睛','price':'99','publisher':'爱心出版社','date':'2020/12/2'}
    return render_template('duocanshu.html',params=locals())

duocanshu.html

<html>
<head>
<meta charset="utf-8">
<title>首页</title>
</head>

<body>
    <p>name:{{params.name}}</p>
    <p>age:{{params.age}}</p>
    <p>usename:{{params.usename}}</p>
    <p>修改后的:{{params.usename|upper}}</p>
    <p>修改后的:{{params.usename|title}}</p>
    <p>修改后的:{{params.usename|trim}}</p>
    
    {% for key,value in params.dic1.items() %}
        <p>{{key}}:{{value}}</p>
    {% endfor %}
</body>
</html>

运行结果:
在这里插入图片描述
八、静态文件

@app.route('/image')
def image():
    return render_template('image.html')

image.html

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>图片</title>
</head>
<body>
    <div>
        <img src="/static/images/1.jpg" width=800px>
        <img src="{{url_for('static',filename='images/1.jpg')}}">
    </div>
</body>
</html>

运行结果:
在这里插入图片描述九、注意WARNING
(1)app=Flask(name,template_folder=’.’):
template_folder表示的是当前路径可以访问render_tamplate(‘文件名’),当html文件与run1.py处于同一路径下时,可以正常运行。如果不带入这个实参,则render_template默认访问的是根目录下的tamplates文件夹下的html文件。一般在实际开发过程中,不推荐使用template_folder实参。
(2)url_for()
此方法在实际开发过程中非常实用,常用于超链接。
(3)静态文件
没有和服务器交互的文件叫做静态文件,在flask应用中,必须将静态文件放置于更目录下的static文件夹下,否则无法进行正常访问。
在这里插入图片描述

(4)自定义错误页面
在实际开发过程中,如果沿用浏览器的错误页面,会降低用户体验,则使用自定义的错误页面会更加吸引用户,如百度。

  • 11
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
要搭建Python Flask框架,需要按照以下步骤进行: 1. 安装Python:首先需要确保在机器上安装了Python。可以从Python官方网站上下载并安装适用于操作系统的Python版本。 2. 安装Flask库:在Python环境运行以下命令安装Flask库: ``` pip install flask ``` 3. 创建项目文件夹:在合适的位置创建一个新的文件夹,这将是我们的项目文件夹。 4. 创建虚拟环境(可选):强烈建议在项目使用虚拟环境,以便隔离不同的项目的依赖。可以使用以下命令创建并激活一个虚拟环境: ``` python -m venv env ``` 然后使用以下命令激活虚拟环境: ``` source env/bin/activate (Linux/Mac) env\Scripts\activate (Windows) ``` 5. 创建应用程序文件:在项目文件夹下创建一个Python脚本文件,例如`app.py`。 6. 导入Flask并创建应用程序实例:在应用程序文件,导入Flask库并创建一个Flask应用程序实例,如下所示: ```python from flask import Flask app = Flask(__name__) ``` 7. 创建路由和视图函数:使用装饰器来创建路由和相应的视图函数。路由是指URL路径,视图函数是用于处理路由的函数。例如,创建一个根路由和视图函数,如下所示: ```python @app.route('/') def index(): return 'Hello World!' ``` 8. 运行应用程序:在应用程序文件添加以下代码,以在本地启动Flask应用程序: ```python if __name__ == '__main__': app.run() ``` 9. 运行应用程序:在命令行切换到项目文件夹,并运行以下命令以启动应用程序: ``` python app.py ``` 现在,Flask应用程序已经成功搭建起来了!可以在浏览器访问`http://localhost:5000`来查看应用程序的输出。 这只是搭建Flask框架的基础步骤,之后可以根据需要添加更多功能和路由。Flask文档提供了更详细的信息和示例,可以进一步学习和探索。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穆穆Max

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值