当前位置: 首页 > news >正文

dedecms 网站地图xml德阳seo

dedecms 网站地图xml,德阳seo,市场推广计划方案,企业网站建站软件文章目录 Flask开发环境搭建保持Flask运行Debug调试 路由和视图可变路由 请求和响应获取请求信息Request属性响应状态码常见状态码CookieSession 表单GET请求POST请求 Flask 在用户使用浏览器访问网页的过程中,浏览器首先会发送一个请求到服务器,服务器…

文章目录

  • Flask
  • 开发环境搭建
    • 保持Flask运行
    • Debug调试
  • 路由和视图
    • 可变路由
  • 请求和响应
    • 获取请求信息
    • Request属性
    • 响应状态码
    • 常见状态码
    • Cookie
    • Session
  • 表单
    • GET请求
    • POST请求

Flask

在用户使用浏览器访问网页的过程中,浏览器首先会发送一个请求到服务器,服务器接收到请求之后,会将请求转交给Flask进行处理。Flask会对用户所访问的URL进行解析,然后找到相应的响应内容,将其返回到浏览器。

开发环境搭建

参考文档:【SH】Ubuntu Server 24搭建Web服务器访问Python程序研发笔记

保持Flask运行

开启Ubuntu服务器,切换到项目目录,激活虚拟环境,运行app.py文件。如果开启了debug=True参数,只需要启动一次,后续更改了app.py文件后会自动重启,挺方便的,当然如果修改后运行失败,重启也会失败的。😄

sh@sheephero:~$ cd dip_project/
sh@sheephero:~/dip_project$ source dipenv/bin/activate
(dipenv) sh@sheephero:~/dip_project$ python app.py

app.py文件:

from flask import Flaskapp = Flask(__name__)@app.route("/")
def index():return "<h1>Hello World!</h1>"  if __name__=='__main__':# 运行Flask应用,监听默认端口5000app.run(debug=True, host='0.0.0.0')

运行情况:

保持Flask运行

Debug调试

当Python程序运行出现出错的时候,就会出现如下界面,非常方便开发者进行调试!
调试

Debug调试

路由和视图

仔细观察app.py 中的代码,hello 函数被 @app.route("/") 装饰器装饰,该装饰器用于定义路由,确定URL与Python函数之间的映射。而被装饰的hello函数便是视图函数,用于返回用户请求URL的响应内容。

可变路由

装饰器这部分,可以用<>定义一个可变参数,同时在视图函数()中添加这个参数,便可以设置动态路由,动态响应。

from flask import Flaskapp = Flask(__name__)@app.route("/")
def index():return "<h1>Hello World!</h1>"@app.route("/user/<name>")
def user(name):return "<h1>Hello, {}!</h1>".format(name)if __name__=='__main__':# 运行Flask应用,监听默认端口5000app.run(debug=True, host='0.0.0.0')

动态路由
运行情况

请求和响应

HTTP的核心就是【请求】和【响应】,其性质为无状态协议,对事务处理没有记忆能力。这意味着每一次交互都是完全独立的。

获取请求信息

路由和视图函数部分代码:

@app.route("/info")
def info():# 从request对象中获取用户请求信息info_str = f"""用户IP:{request.remote_addr} <br/>请求方式:{request.method} <br/>请求表单:{request.form} <br/>用户浏览器:{request.user_agent} <br/>用户Cookie:{request.cookies} <br/>"""return info_str

Request属性

属性名称数据类型说明
methodstr请求的提交方式
pathstrURL中的访问路径
full_pathstrURL中的访问路径,包含数据
remote_addrstr浏览器的IP地址
urlstr请求的完整URL
base_urlstr请求的URL,不含数据
url_rootstr请求的根URL,不含路径
user _ agentstr浏览器及操作系统信息
argsdict请求中提交表单的GET参数
formdict请求中提交表单的POST参数
filesdict请求提交所上传的文件
cookiesdict浏览器Cookie数据

响应状态码

每次的HTTP交互中,都会响应状态码。通过浏览器的F12可以查看响应状态码。

路由和视图函数部分代码:

@app.route("/user/<name>")
def user(name):if name in ['世界','羊大侠','SheepHero']:return "<h3>Hello, {}!</h3>".format(name) # 正常响应默认200else:return f'用户 {name} 不存在!', 404

运行情况

常见状态码

状态码信息说明
200OK一切正常
301Moved Permanently重定向
400Bad Request客户端请求错误
403Forbidden无权限访问
404Not Found找不到页面
405Method Not Allowed客户端使用了不支持的提交方法
500Internal Server Error服务器端出错
502Bad Gateway代理与服务器之间访问出错

Cookie

HTTP每次的交互都是独立的,无法存储状态数据,Cookie就是为了解决这个问题。

Cookie的存储容量有限,一般不会超过4KB。因此,Cookie只能存储少量数据,如用户的一些偏好设置、临时信息等。当用户访问需要记录状态数据的网页时,服务器会在HTTP响应包头部加入设置Cookie的指令,浏览器接收到响应包后,将Cookie存储到本地,当用户再次访问页面时,浏览器会将Cookie数据加入HTTP请求包头部,从而使服务器获取到状态信息。

由于Cookie是存放在本地的,可以被查看及修改,安全性较低,所以一般不用来存储敏感数据。

from flask import Flask, request, make_response
import timeapp = Flask(__name__)@app.route('/visit')
def visit():# 从Cookie获取最后访问时间last_visit_time = request.cookies.get('last_visit_time', '首次访问')resp = make_response(f'最后访问的时间:{last_visit_time}')# 获取服务器当前时间并设置Cookielast_visit_time = time.strftime('%Y-%m-%d %H:%M:%S')# max_age用户设置Cookie的有效期(秒)resp.set_cookie('last_visit_time', last_visit_time, max_age=86400)return respif __name__=='__main__':# 运行Flask应用,监听默认端口5000app.run(debug=True, host='0.0.0.0')

Cookie运行情况

同样的,在浏览器里面按【F12】点击Network,点击Cookies就可以查看Cookies信息。
没有设置Cookie过期时间的情况下,当用户关闭浏览器(Chrome)时,Cookie将会被自动清除。

Cookie信息

Session

Session与Cookie的作用相似,都用于存储状态数据。不同的是,Session只能在服务器端进行管理,用户在本地无法对其进行修改,因而安全性较高。Session一般用于存储用户登录状态等对安全性要求较高的信息。
为了保证数据的安全性,Session一般有以下两种存储方式。
(1). 使用Cookie记录一个随机生成的session_id,session_id用于记录Session与用户的映射关系,所有数据存储于服务器端,用户无法修改数据。
(2). 所有Session数据都在服务器端加密,然后存储在浏览器的Cookie中,若用户拥有加密算法及密钥,则Session数据可以被用户修改。​(Flask默认以这种方式存储Session​)

from flask import Flask, session
import timeapp = Flask(__name__)# 在使用Session之前,需要初始化 SECRET_KEY
app.config['SECRET_KEY'] = 'SheepHero' # 自定义
@app.route('/sign_in')
def sign_in():# 设置Session持久性存储数据,关闭浏览器记录还会保存在服务器中session.permanent = True# 从Session获取最后的签到时间及签到次数sign_in_time = session.get('sign_in_time','首次访问')sign_in_count = session.get('sign_in_count', 0)# 设置Session字典session['sign_in_time'] = time.strftime('%Y-%m-%d %H:%M:%S')session['sign_in_count'] = sign_in_count + 1ret_str = f'上次签到时间:{sign_in_time} <br/> 这是第 {sign_in_count} 次签到'return ret_strif __name__=='__main__':# 运行Flask应用,监听默认端口5000app.run(debug=True, host='0.0.0.0')

有了Session,便可以实现安全的用户状态数据保存,从而实现登录功能。

在这里插入图片描述

表单

通过表单让用户和服务器进行数据交互。

from flask import Flask, request
import time
app = Flask(__name__)# 在使用表单前,需要初始化 SECRET_KEY
app.config['SECRET_KEY'] = 'SheepHero' # 自定义
# 可以通过GET和POST两种方式获取表单数据
@app.route('/form', methods=['GET', 'POST'])
def form():# args用户获取GET方式提交的数据msg_get = request.args.get('msg_get')# form用户获取POST方式提交的数据msg_post = request.form.get('msg_post')return f'GET数据:{msg_get} <br/> POST数据:{msg_post}'if __name__=='__main__':# 运行Flask应用,监听默认端口5000app.run(debug=True, host='0.0.0.0')

GET请求

测试GET请求,浏览器输入http://172.16.37.37:5000/form?msg_get=你好!即可

get测试情况

POST请求

测试POST请求,可以编写一个Python脚本,模拟POST请求

# 保存为post.py文件
import requests
url = 'http://172.16.37.37:5000/form'
payload = {'name':'羊大侠','alias':'SheepHero','msg_post':'Py羊大侠'
}
response = requests.post(url, data=payload)
print(response)
print(response.text)

post测试情况

http://www.zhongyajixie.com/news/40922.html

相关文章:

  • 做专业的热转印材料门户网站深圳网站建设公司
  • 杭州的网站开发百度快速排名技术培训
  • 昆山建设工程安监站网站灰色行业关键词推广
  • 网站网站制作需要多少钱软文街怎么样
  • 建设教育工程网站百度公司官网招聘
  • 大连做网站仟亿科技如何在微信上做广告
  • wordpress建站技巧网店如何推广自己的产品
  • 深圳营销型网站全球网站流量查询
  • 温州网站运营百度小说网
  • 企信网是什么网站矿泉水软文广告500字
  • 工业设计公司简介厦门关键词优化平台
  • 已建设英文网站的政府部门wordpress
  • 南昌 网站制作百度seo推广计划类型包含
  • 个人养老保险账户余额查询谷歌seo优化
  • 俄语网站建设公司电脑培训学校课程
  • 梅县区建设工程交易中心网站百度互联网营销
  • 个人网站免费注册百度免费seo
  • 宣传类的网站怎么做起泡胶
  • 专业做网站套餐外贸展示型网站建设公司
  • 我的家乡网站建设模板下载网站维护的内容有哪些
  • 郑州企业网站排名建站系统
  • 阳性不一定是新冠广州网站优化系统
  • 我做推广找不到我的网站百度手机关键词排名工具
  • 碗网站关键词挖掘工具爱站网
  • 网站建设培训最近疫情最新消息
  • wordpress网站打开慢营销对企业的重要性
  • 设计师个人网站怎么做怎么让百度收录我的网站
  • wordpress 二开北京郑州seo优化顾问热狗
  • 龙南城市建设局网站关键词排名监控
  • 族蚂建站b2b平台免费推广网站