Python全栈 Web(Flask框架、安装、应用)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: Flask、Python、Django、框架、服务器、客户端、浏览器、交互、WEB、Python前端、CSS、JAVA、HTML、H5、PHP、JavaScript、JQuery、分布式开发
Flask  轻量级WEB框架

静态网页:
不能与服务器交互的网页都是静态网页
动态网页:
能够与服务器进行交互的网页

WEB:浏览器 网页(前端三剑客)
服务器:
能够给用户提供服务的机器就是服务器
硬件来说就是 一台主机
还要配备一个能够接受用户请求并给出响 应用程序
APACHE
TOMCAT
IIS(Internet Information Service)
Nginx(Python用的较多)
作用:
存储WEB所需要的信息
所有的服务器都能够处理用户请求( request)并作出回应( response
能够执行服务器端的程序
具备一定的安全性功能
框架:
是一种为了解决开放性问题而存在的一种结构
框架本身也提供了一些基本功能,
我们只需要在自己的基础功能上搭建属于自己的操作即可
Python的WEB框架:
Flask
Django
Tornado
Webpy

Flask框架:
什么是Flask?
Flask是一个基于Python并且依赖于jinja2模板引擎和
werkzeug WSGI(Web server Gateway Interface)
外部服务网关接口  服务的一个微型框架
Flask的框架模式:
Python的框架基本都是MTV的
M:Models  模型层
负责数据库建模 与数据库打交道
T:Templates 模板层
用于处理用户显示的网页内容
V:Views:视图层
用于处理与用户交互的部分  处理用户的请求并给出
响应内容的一段逻辑程序
而其他语言框架基本都是MVC:
M:Models 模型层
同上 
V:Wiews  视图层
视图层 用处处理用户显示的内容的  等同于MTV的 T
C:Controller:控制器
处理用户的请求与响应 等同于MTV的 V



安装:
在线安装
sudo pip3 install flask
离线安装:
9个依赖包  装到吐血身亡~   还是算了~~

                Pycharm安装:
      


 



pip3可以下载安装包:
pip3 download 包名
验证安装:
import flask
版本信息:flask.__version__  



安装好以后初始化项目:

打开终端


Paris@Python:~$ mkdir Flask
Paris@Python:~$ cd Flask/
Paris@Python:~/Flask$ mkdir FlaskProject
Paris@Python:~/Flask$ cd FlaskProject/
Paris@Python:~/Flask/FlaskProject$ touch run.py
Paris@Python:~/Flask/FlaskProject$ mkdir templates
AI 代码解读



创建好文件后用Pycharm打开

 

 




运行应用


from flask import Flask

app = Flask(__name__)
# 将主程序构建为 Flask应用命名为app 
# 以便于处理用户request 给出response

@app.route("/")
def index():
    return "这是首页  Hello World!"
    # 配置路由
    # 通过应用装饰器函数来构建视图函数  视图函数必须有return
    # /表示网站的首页  根路径

if __name__ == "__main__":
    app.run(debug=True, port=8888)
# 运行app应用 并开启调试模式 
# 默认端口为5000 自定义端口为8888  可以省略
AI 代码解读




一个Flask框架就搭建好了





Flask路由(route):
什么是路由?
客户端发送给WEB服务器  WEB服务器再将请求发送给Flask程序实例
程序 实例需要知道每个url请求要运行哪些代码,所以需要建立一个
url 到 python 函数的映射,处理url和函数之间的关系的程序就是 
路由在Flask中,路由是通过 @app.route 装饰器来表示的
路由:

@app.route('/login')
def login():
    return '这是登录页面'

@app.route('/register')
def register():
    return '这是注册页面'
AI 代码解读

基本参数的路由:

# 定义带一个参数的路由
@app.route('/show1/<name>')
def show1(name):
    return "<h1>姓名为:%s</h1>" % name
AI 代码解读

多参数路由:

# 定义带两个参数的路由  参数可以更多
@app.route('/show2/<name>/<age>')
def show2(name,age):
    return "<h1>姓名为:%s,年龄为:%s" % (name,age)
AI 代码解读

指定参数数据类型路由:

# 定义带两个参数的路由,其中,age参数指定为整数
@app.route('/show3/<name>/<int:age>')
def show3(name,age):
    # age : 为 整型,并非 字符串
    return "传递进来的参数是name:%s,age:%d" % (name,age)
AI 代码解读

Flask中所有支持的类型转换器:
<int:age>:
类型转换器指定类型  表示age参数是一个整数  数据类型 

不写 默认字符串类型  不能有“/” 代表一个路径
int:  整型
float:浮点型
path: 字符串型  可以有斜杠

@app.route("/show/<name>/<int:age>")
@app.route("/show/<name>/<int:age>/<float:score>")
@app.route("show/<path:file/html/show>")
AI 代码解读


多URL的路由匹配:
在一个视图函数上可以添加多个装饰器来指定rul路由的匹配规则
一个视图处理函数中设置多个url路由规则

# 多 URL 路由匹配  可以一直网上写~
@app.route('/')
@app.route('/index')
@app.route('/<int:page>')
@app.route('/index/<int:page>')
def index(page=None):
    if page is None:
        page = 1
    return "当前页数为:%d" % page
AI 代码解读



路由设置HTTP请求方法
路由规则允许设置对应的请求方法
只有将匹配上请求方法路径交给视图函数处理去执行

@app.route('/post',methods=['POST','GET'])
def post():
    return '这是post请求方式进来的'
AI 代码解读


只有POST请求方式允许访问  localhost:5000/post

URL 的解析
正向解析:
程序自动解析 根据@app.route() 装饰器中的访问路径来处理函数
反向解析:
通过视图处理函数的名称自动生成视图处理函数的访问路径
Flask中提供了url_for(fun, ...)函数  用于反向解析
参数:
fun:指向函数名称(通过app.route()装饰后的函数)
后续:对应要构建的url上的变量


@app.route('/url')
def url_views():
    # 将 login() 反向解析访问地址
    logUrl = url_for('login')
    resp = "<a href='" + logUrl + "'>我要登录</a>"
    return resp

    # 将 show2(name,age) 反向解析访问地址
    url = url_for('show2',name = 'Paris',age = 18)
    print(url)
    resp = "<a href='" + url + "'>" + url + "</a>"   直接解析为超链接
    return resp
AI 代码解读


特殊:
url_for("static", filename="style.css")
静态文件反向解析
模板:
什么是模板?
还是一个包含响应文本的文件 通常也是HTMl文件
该文件中可以包含“占位变量” 来表示动态的内容
具体值  只有在请求中才能获取  "占位变量"最后会被真实的值替换
模板最终也会被解析成响应的字符串  这一过程也称为"渲染"

Flask实际上是使用 Jinja2 强大的模板引擎
模板的设置:
默认情况下 Flask会在程序文件夹中的 templates 子文件夹中自动寻找模板
需要收动创建 templates 子文件夹  里面放HTML文件


渲染模板:
在视图函数中  通过 return render_tepmlate() 将模板渲染成字符串再响应给客户端

render_template("xxx.html", arg1=value1, ...):
参数1:
xxx.html  要渲染给客户端的HTML模板文件
参数2~n:
可以省略   要传递给模板动态显示的变量占位符 
返回值:
字符串

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    str = render_template('index.html')
    print(str)
    return str

if __name__ == '__main__':
    app.run(debug=True,port=5555)
AI 代码解读


目录
打赏
0
0
0
1
740
分享
相关文章
Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
57 7
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
60 2
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
132 3
|
3月前
|
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
194 3
2025年,Web3开发学习路线全指南
本文提供了一条针对Dapp应用开发的学习路线,涵盖了Web3领域的重要技术栈,如区块链基础、以太坊技术、Solidity编程、智能合约开发及安全、web3.js和ethers.js库的使用、Truffle框架等。文章首先分析了国内区块链企业的技术需求,随后详细介绍了每个技术点的学习资源和方法,旨在帮助初学者系统地掌握Dapp开发所需的知识和技能。
2025年,Web3开发学习路线全指南
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
220 45
如何在项目中高效地进行 Web 组件化开发
高效地进行 Web 组件化开发需要从多个方面入手,通过明确目标、合理规划、规范开发、加强测试等一系列措施,实现组件的高效管理和利用,从而提高项目的整体开发效率和质量,为用户提供更好的体验。
40 7
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等