分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

初涉FlaskWeb开发----基础篇

发布时间:2023-09-06 02:20责任编辑:傅花花关键词:Web

1.web程序运行的基本流程

  {客户端发送请求 <-----> 服务器返回响应}

2.使用框架可以降低开发难度,提高开发效率。

3.Flask框架的基本认识:

  特点:用Python语言实现的轻量、简洁、扩展性强

   核心:werkzeug 和 Jinja2

4.虚拟环境:

  创建虚拟环境:mkvirtualenv -p python3 名称

   进入虚拟环境:workon

   退出虚拟环境:deactivate

   移除虚拟环境:rmvirtualenv 名称

5.依赖包:

  生成依赖包:pip freeze > requirements.txt

   安装依赖包:pip install -r requirements.txt

6.基本程序:

  创建程序实例:__name__参数为字符串,表示模块名,可以确定程序所在位置,如果传入标准模块名,会影响静态路径的访问,不会影响视图函数的访问。

  定义装饰器路由:通过程序实例调用route函数实现,底层是通过add_url_rule()函数实现,第一个参数rule、第二个参数endpoint(视图函数名的字符串形式),第三个参数视图函数名。

  启动服务器:run方法可以启动服务器,可以指定调试debug,便于调试代码信息,自动跟踪代码的变化。

 1 # 导入Flask 2 from flask import Flask 3 ?4 # 创建Flask类的对象 5 # 结论:__name__参数的作用:确认程序实例文件所在的位置。 6 # 1、必须要传入参数 7 # 2、参数类型必须是字符串 8 # 3、如果传入标准模块名,只会影响静态路径的访问,不会影响视图函数的访问。 9 app = Flask(__name__)10 11 12 # 定义路由url地址13 # endpoint:表示视图函数名的字符串形式。14 # 不使用装饰器也可以实现路由映射。15 16 @app.route(‘/Lee‘,methods=[‘POST‘,‘GET‘])17 def hello2018():18 ????# return 可以返回状态码,也可以返回不符合http协议的状态码,用来实现前后端的数据交互19 ????"""20 ????前端发送ajax:21 ????$.ajax({22 ????????url:‘/Lee‘,23 ????????data:。。。, 发送到后端的数据24 ????????contentType:‘‘, 发送到后端的数据类型25 ????????dataType:‘json‘ 后端返回的数据类型26 ????????success:function(resp){27 ????????????if (resp == ‘888‘){28 ????????????????alert(errmsg)29 ????????????}else{30 31 ????????????}32 33 34 ????????}35 ????})36 37 ????errno=888,errmsg=‘用户名已注册‘38 39 40 ????:return:41 ????"""42 ????return ‘hello world2018‘,88843 # self.add_url_rule(rule, endpoint, f, **options)44 # 通过程序实例调用添加url规则,也可以实现路由映射。45 # app.add_url_rule(‘/123‘,‘hello2018‘,hello2018)46 47 # 结论:48 # 1、视图函数不能重名。49 # 2、url可以重复,不同的http请求方法,是对应不同的操作get查询post插入put修改delete删除50 # @app.route(‘/‘)51 # def hello2019():52 ????# a = 153 ????# b = 254 ????# return a,b55 ????# 不能返回字典56 ????# my_dict = {‘a‘:‘123‘}57 ????# return my_dict58 ????# 不能返回列表59 ????# my_list = [1,2,3]60 ????# return my_list61 ????# 可以返回元组62 ????# return ‘hello world‘63 64 65 # 启动服务器66 # __name__表示当前模块名,如果被导入文件的时候__name__表示文件名67 if __name__ == ‘__main__‘:68 ????# 查看路由映射:具体的url地址和视图函数名的指向关系。69 ????print(app.url_map)70 ????# debug调试模式:帮助定位错误信息,自动跟踪代码的变化71 ????app.run(debug=True)

7.基本程序扩展:

  视图函数不能重名

  URL可以重复,因为不同的http请求方法代表不同的操作

  路径的访问顺序是从上到下依次查找,如果找到不会继续往下查找

8.加载配置信息:

  加载配置对象

  加载配置文件ini格式文件

  加载环境变量

 1 from flask import Flask 2 # 导入配置类 3 # from config import Config 4 from config import config_dict 5 app = Flask(__name__) 6 # 加载配置文件:三种实现形式 7 # 1、加载配置对象,config是flask内置的配置对象 8 # 重点掌握:因为扩展性更强 9 # app.config.from_object(Config)10 # app.config.from_object(config_dict[‘pro‘])11 # 2、加载配置文件12 # app.config.from_pyfile(‘config.ini‘)13 # 3、加载环境变量14 # app.config.from_envvar(‘SET‘)15 16 17 @app.route(‘/‘)18 def index():19 ????return ‘hello world‘20 21 if __name__ == ‘__main__‘:22 ????app.run()

config.py文件:

# 基本配置类class Config: ???DEBUG = None# 开发模式配置class DevelopmentConfig(Config): ???DEBUG = True# 生产模式配置class ProductionConfig(Config): ???DEBUG = False# 定义字典,实现配置类的映射config_dict = { ???‘dev‘:DevelopmentConfig, ???‘pro‘:ProductionConfig}

9.状态码:

  return可以返回不符合http协议的状态码,用来前后端的数据交互。

10.重定向:

  redirect----参数是具体的URL地址

  url_for ----参数是视图函数名(端点endpoint)

# 导入flask内置的函数redirectfrom flask import Flask,redirect,url_forapp = Flask(__name__)# 重定向redirect:接收参数为location,具体的url地址# 重新发送网络请求,跳转页面# 当项目路径(url)或文件发生变化的情况下,可以使用重定向。@app.route(‘/‘)def index(): ???url = ‘http://www.baidu.com‘ ???# 重定向到百度 ???return redirect(url)# url_for反向解析:接收的参数endpoint,视图函数名@app.route(‘/for‘)def demo_url_for(): ???return redirect(url_for(‘index‘))if __name__ == ‘__main__‘: ???print(app.url_map) ???app.run(debug=True)

   

初涉FlaskWeb开发----基础篇

原文地址:https://www.cnblogs.com/Lee1010/p/9898595.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved