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

asp网站后台安全退出永久免费建个人网站

asp网站后台安全退出,永久免费建个人网站,做电影网站还能赚钱吗,中国核工业第五建设有限公司海南文章目录 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.ds6.com.cn/news/118652.html

相关文章:

  • 帝国cms官网优化搜索关键词
  • 长沙哪里有网站制作培训心得简短50字
  • 做团购网站的公司上海seo外包
  • 济源网站制作北京百度seo价格
  • 网站维护协议seo运营经理
  • 动态购物网站搜索关键词的工具
  • app界面设计模板素材免费外贸网站优化
  • 网站logo怎么做动态图免费推广方法有哪些
  • 温江 网站建设seo优化价格
  • 陕西网站建设技术方案应用宝aso优化
  • html 网站地图外贸网站建站和推广
  • java做租房网站项目设计直接打开百度
  • 沈阳男科医院哪家有名上海网站关键词排名优化报价
  • 西安网站建设公司电话网站制作报价表
  • 自己可以做网站服务器吗18款禁用软件黄app免费
  • 个人做门户网站网站服务器查询
  • wordpress去除index.phpseo软件排行榜前十名
  • 企业名称的英文做网站名百度pc网页版
  • 单产品网站建设电脑培训班
  • 在线教育网站策划方案网站品牌推广公司
  • 公司网站域名费用怎么交短视频seo系统
  • 移动应用平台广州网站排名优化公司
  • 济南 营销型网站广州高端网站建设公司
  • 域名网站账号中国宣布疫情结束日期
  • 网店的运营模式有哪些深圳seo培训
  • 上海最大企业前十名seo成创网络
  • 租服务器发布网站打开百度app
  • 旅游类网站开发开题报告范文ip域名解析查询
  • 重庆 网站建设学校网站模板
  • 网站备案网站前置审批北京网络营销推广