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

本文介绍了Flask,一个轻量级的Python Web框架,它依赖于Jinja2模板引擎和WSGI。文章详细阐述了Flask的MTV模式,包括模型、模板和视图的作用。接着,展示了在Windows和Linux上安装Flask的步骤,以及如何创建基本的Flask应用程序结构。此外,还讨论了路由、模板渲染、控制结构、错误处理和静态文件等关键概念,为初学者提供了一条学习Flask的路径。
摘要由CSDN通过智能技术生成

什么是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文件

首页

Welcome to pythoy world!

现在我们搭建了一个非常简单的WEB网站,下面进行更深层次的总结

一、带类型转化器参数的路由

(1)带str型参数:

@app.route('//')

def daicanluyou(name,age):

return '

姓名:{},年龄{}

'.format(name,age)

运行结果

(2)带int型参数

@app.route('//')

def daicanluyou(name,age):

return '

姓名:{},明年年龄{}

'.format(name,age+1)

运行结果:

二、render_template()方法

(1)不带参数的render_tamplate()

@app.route('/login')

def login():

return render_template('login.html')

login.html文件

登陆页面

用户名

密 码

运行结果:

(2)带参数的render_template()

@app.route('/information//')

def information(name,age):

return render_template('information.html',name=name,age=age)

information.html

Information

姓名:{{name}},年龄:{{age}}

运行结果:

(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

首页

name:{{params.name}}

age:{{params.age}}

{% for key,value in params.dic1.items() %}

{{key}}:{{value}}

{% endfor %}

运行结果:

三、模板

@app.route('/ziban')

def ziban():

return render_template('ziban.html')

index.html

首页

Welcome to pythoy world!

{% block container %}

这是模板

{% endblock %}

ziban.html

{% extends'index.html' %}

{% block container %}

这是子板

{% endblock %}

运行结果

四、控制结构

@app.route('/control')

def control():

usename='mumu'

age=22

return render_template('control.html',params=locals())

control.html

首页

{% if params.usename %}

用户名为:{{params.usename}}

{% else %}

用户未找到返回登陆界面

{% endif %}

五、访问方式

(1)POST

@app.route('/methods',methods=['POST'])

def methods():

return render_template('index.html')

运行结果

网页源代码:

(2)POSTGET

@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 %}

您想要的网页暂时未找到

{% 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

首页

name:{{params.name}}

age:{{params.age}}

usename:{{params.usename}}

修改后的:{{params.usename|upper}}

修改后的:{{params.usename|title}}

修改后的:{{params.usename|trim}}

{% for key,value in params.dic1.items() %}

{{key}}:{{value}}

{% endfor %}

运行结果:

八、静态文件

@app.route('/image')

def image():

return render_template('image.html')

image.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)自定义错误页面

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值