Flask初识

Flask介绍

框架

对同一类型的项目共性代码的封装,称为框架。Flask 是python开发编写的web框架,相较其他框架,Flask更加的轻量,灵活,但是对python代码能力要求高,Flask只提供了最基本web功能,其他功能都需要开发者自己使用python代码实现,所以,Flask项目质量是由开发者的能力决定的,但是,随着版本迭代,好多社区,组织,三方开发出了公共的Flask插件,开发者不再需要编写好多功能,转为,下载,安装使用三方插件。

结构介绍
c/s结构:客户端服务器结构
b/s结构:浏览器服务器结构
现在所学的是bs结构
在这里插入图片描述

Flask开始

下载

可以使用anaconda创建flask沙箱环境
进入到沙箱环境中
此次下载的版本分别为
python3.7
Flask1.1.1

pip install flask==1.1.1 -i https://pypi.tuna.tsinghua.edu.cn/simple  # 指定一下国内源

清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/

注:新开始的沙箱环境到pycharm中需要指定解释器

Hello world

from flask import Flask

app = Flask(__name__) #创建web服务器实例
#__name__: 内置的python方法,用来标识python文件的执行状态
    #直接执行当前文件  __name__ = '__main__'
    #被导入执行  __name__ = "文件的相对路径"
    #执行的优先级

#用户通过url来告诉浏览器取哪里获取资源,url(统一资源定位符)
@app.route("/index") #装饰器,用来指定路由 ,基于当前web服务器实例创建路由和对应的视图
def index(): #视图函数
    return "<p style= 'color: red'>hello world</p>"

@app.route("/hello") #装饰器,用来指定路由
def hello():
    return "<h1 style= 'color: red'>hello world</h1>"


if __name__ == '__main__':
    #通常网站的页面需要放到服务器上,用户无法直接双击打开页面,
    #所以有网站服务器的概念:
    # apache(比较老,比较成熟web服务器 LAMP(Linux Apache Mysql PHP))
    # nginx (比较新,比较成熟web服务器 LNMP(Linux nginx Mysql PHP))
    # python自带轻量级web服务器,在学习之初直接使用。
    # app.run() #启动服务器
    app.run(host="10.10.18.74",port=8000,debug=True)
        #host 主机
        #post 端口
        #debug 调试

编写的步骤

form flask import Flask

app = Flask(_name_) 创建一个服务器实例

@app.route("/路由")

路由是作为指向视图函数的标志,用户可以通过url来访问,服务器会从url当中获取到路由。

url(统一资源定位符):
比如:https://a.com/b/c/d.jpg

协议: https://

主机部分: a.com(也可以是一共ip:端口地址)

​ 端口:每个ip都有0-65535给端口,前1000个用于系统服务,比如:http协议是80端口,https协议是443,mysql:3306,每个ip的对应端口同时支持一个服务,

路由部分:

代表资源在这个服务器上的位置

对于视图函数,代表视图函数的路由

对于静态资源,代表放在服务器当前web服务的根目录的位置。

b/c/d.jpg

根目录:网站服务启动的目录就是根目录

启动web服务,实质上就是在服务器指定目录下,启动服务,将这个目录作为根目录按照http协议规则解析给用户。

app.run() #启动服务器

​ 可以设置服务器的ip和端口

​ 设置的ip是用户访问的ip

​ 127.0.0.1 代表本机

​ 0.0.0.0 代表本机所有地址

执行的步骤:

1、启动脚本

2、在浏览器上访问给定url(ip:端口/路由)

Flask路由操作

在web开发当中,可以通过路由修改查询的内容,因为路由本身就可以把接收的数据当中的一部分传递给视图函数。

例:

@app.route("/hello/<name>/")
def hello(name):
    result = "<h1>hello world,I am {}</h1>".format(name)
    return result

@app.route("/say_hello/")
def say_hello():
    result = """
    <ul>
        <li><a href="/hello/老王/">老王</a></li>
        <li><a href="/hello/老李/">老李</a></li>
        <li><a href="/hello/老张/">老张</a></li>
        <li><a href="/hello/老赵/">老赵</a></li>
    </ul>
    """
    return result

1、在路由上,有<>包围的部分,匹配到的内容会作为参数传递给视图函数

2、视图函数需要有和路由<>内名称对应的形参进行参数接收

3、接收到的参数可以在函数内部使用

4、可以通过页面的<a>标签的href属性指向目的路由去跳转页面

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值