成都网站建设方案服务淘宝网pc首页

web/2025/9/26 13:20:56/文章来源:
成都网站建设方案服务,淘宝网pc首页,网络软件开发,百度域名购买简述 Flask 是 Python 生态圈中一个基于 Python 的Web 框架。其轻量、模块化和易于扩展的特点导致其被广泛使用#xff0c;适合快速开发 Web 应用以及构建小型到中型项目。它提供了开发 Web 应用最基础的工具和组件。之所以称为微框架#xff0c;是因为它与一些大型 Web 框架…简述 Flask 是 Python 生态圈中一个基于 Python 的Web 框架。其轻量、模块化和易于扩展的特点导致其被广泛使用适合快速开发 Web 应用以及构建小型到中型项目。它提供了开发 Web 应用最基础的工具和组件。之所以称为微框架是因为它与一些大型 Web 框架如 Django不同并不捆绑数据库管理、表单验证等功能而是保持了极简的核心只包含了路由、模板引擎和WSGI服务器的基本功能使开发者可以根据需求选择合适的扩展来构建应用。掌握 Flask 的基础之后可以深入学习如何实现更复杂的功能例如用户认证、API 版本管理、性能优化以及如何与前端框架如 Vue.js 或 React进行集成以构建现代的全栈应用。Flask 的设计哲学是 简单优先、灵活性强让开发者对应用的构建过程有更多的控制。Flask 由 Armin Ronacher 开发基于两个核心工具库Werkzeug和Jinja2。 Werkzeug是一个 WSGI工具包用于处理 HTTP 请求和响应。 Jinja2是一个灵活的模板引擎用于生成动态 HTML 页面。 Flask 的架构是典型的 MVCModel-View-Controller风格中的一种实现。这种架构可以有效分离应用的业务逻辑、数据管理和视图展示有助于保持代码的清晰性和模块化核心功能主要包括 基本要点 1. 路由系统 Flask 使用 app.route() 装饰器定义 URL 路由这使得定义一个请求的处理函数变得非常简洁。每个 URL 路径都对应一个视图函数它负责处理来自客户端的请求并返回合适的响应。类似于之前提到过的fastapi from flask import Flask app Flask(__name__)# 路由与视图函数一一对应程序实例需要知道每个url请求所对应的运行代码是谁所以程序中必须要创建一个url请求地址到python运行函数的一个映射 app.route(/hello) # 将路径 /hello 映射到函数 hello_world当用户访问这个路径时浏览器会得到 Hello, World! 的响应url映射的函数要传参则在上述route路由中添加参数申明 def hello_world():return Hello, World!# 注意如果ip设置成0.0.0.0不仅监听本地端口且端口对外开发那么在任意主机上都可以访问该地址请确保你本地数据处于安全状态不受攻击 if __name__ __main__:app.run(host127.0.0.1, port8080, debugFalse) 访问上述路径是会打印出该函数结果 2. 请求和响应处理 Flask 对 HTTP 请求和响应的处理非常灵活。通过 flask.request 对象可以访问请求的所有细节如查询参数、表单数据、上传的文件等。对于响应开发者可以使用 flask.Response 类来自定义 HTTP 响应。 from flask import Flask, requestapp Flask(__name__)#注意路由路径不要重名映射的视图函数也不要重名,methods表示请求方式 app.route(/greet, methods[GET, POST]) def greet():if request.method POST:name request.form.get(name)return fHello, {name}!return form methodPOSTName: input typetext namenameinput typesubmit valueSubmit/formif __name__ __main__:app.run(debugFalse) 访问上述路径时如下图 3、路由 可以在路径内以/参数名的形式指定参数默认接收到的参数类型是string 以下为flask框架自带的转换器可以置于参数前将接收的参数转化为对应类型         string 接受任何不包含斜杠的文本         int 接受正整数         float 接受正浮点数         path 接受包含斜杠的文本 当然也可以自定义转换器pip install werkzeug from werkzeug.routing import BaseConverter #导入转换器的基类用于继承方法 from flask import Flaskapp Flask(__name__)# 自定义转换器类 class RegexConverter(BaseConverter):def __init__(self,url_map,regex):# 重写父类定义方法super(RegexConverter,self).__init__(url_map)self.regex regexdef to_python(self, value):# 重写父类方法后续功能已经实现好了print(to_python方法被调用)return value# 将自定义的转换器类添加到flask应用中 # 具体过程是添加到Flask类下url_map属性一个Map类的实例包含的转换器字典属性中 app.url_map.converters[re] RegexConverter # 此处re后括号内的匹配语句被自动传给我们定义的转换器中的regex属性 # value值会与该语句匹配匹配成功则传达给url映射的视图函数 app.route(/index/re(1\d{10}):value) def index(value):print(value)return Hello World!if __name____main__:app.run(debugFalse) 4、endpoint 每个实例app中都存在一个url_map这个url_map中包含了url到endpoint的映射当request请求传来一个url的时候会在url_map中先通过rule找到endpoint然后再在view_functions中根据endpoint再找到对应的视图函数view_func from flask import Flaskapp Flask(__name__)# endpoint默认为视图函数的名称 app.route(/branch) def test():return check success! # 可以在路由中修改endpoint相当于为视图函数起别名当视图函数名称很长时适用 app.route(/hello,endpointhello_test) def hello_world():return Hello World!if __name__ __main__:print(app.view_functions)print(app.url_map)app.run() 可以通过view_functions查看到当前endpoint与视图函数的对应情况可以通过url_map查看当前url与endpoint的绑定情况 endpoint默认为视图函数的名称endpoint相当于给url起一个名字view_functions内存储的就是url的名字到视图函数的映射且endpoint在同一个蓝图下也不能重名要注意即使修改endpoint为其他视图函数名路由依然是绑定其正下方的第一个视图函数说明endpoint作用于url而不是作用于函数名。 5、redirect重定向 在flask 中重定向是通过flask.redirect(location, code302)这个函数来实现的location表示需要重定向的url, 应该配合url_for函数来使用 code表示采用哪个重定向默认是302即临时性重定向, 可以修改为301来实现永性重定向 from flask import Flask,jsonifyapp Flask(__name__)# endpoint默认为视图函数的名称 #用jsonify库实现将json数据返回给前端 app.route(/branch) def test():data{suatus:check success!}return jsonify(data) # 可以在路由中修改endpoint相当于为视图函数起别名当视图函数名称很长时适用 app.route(/hello,endpointhello_test) def hello_world():#doing something#...# redirect重定位服务器向外部发起一个请求跳转到一个url界面# url_for给指定的函数构造 URL# return redirect(/items) 不建议这样做,将界面限死了return redirect(url_for(items))if __name__ __main__:print(app.view_functions)print(app.url_map)app.run() 6、abort函数 类似于python中的raise函数可以在需要退出请求的地方抛出错误并结束该请求可以使用errorhandler()装饰器来进行异常的捕获与自定义 from flask import Flask,jsonifyapp Flask(__name__)# endpoint默认为视图函数的名称 #用jsonify库实现将json数据返回给前端 app.route(/branch) def test():data{suatus:check success!}return jsonify(data) # 可以在路由中修改endpoint相当于为视图函数起别名当视图函数名称很长时适用app.route(/hello,endpointhello_test,methods[GET,POST]) def hello_world():if request.method GET:#doing somethingpasselse:# abort的用法类似于python中的raise在网页中主动抛出错误abort(404)# redirect重定位服务器向外部发起一个请求跳转到一个url界面# url_for给指定的函数构造 URL# return redirect(/items) 不建议这样做,将界面限死了return redirect(url_for(items))# 自定义错误处理方法,将404这个error与Python函数绑定 # 当需要抛出404error时将会访问下面的代码 app.errorhandler(404) def handle_404_error(err):# return 发生了错误错误情况%s%err# 自定义一个界面return render_template(404.html)if __name__ __main__:print(app.view_functions)print(app.url_map)app.run() 自定义的404界面 !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head body !-- 注意图片文件需要放在一个静态文件夹static里 -- img src../static/error404.jpg alt width1428px height57px /body /html 二、Flask 的扩展与灵活性 虽然 Flask 是一个微框架但它具有极强的灵活性可以自由选择各种扩展来增强功能 Flask-SQLAlchemy用于与关系数据库交互提供 ORM对象关系映射支持。是一个流行的 Flask 扩展它为数据库操作提供了一种更简洁、更 Pythonic 的方式。 Flask-WTF用于表单处理和验证简化表单开发。 Flask-Login用于用户认证与会话管理。 这些扩展可以无缝集成到 Flask 应用中使开发者在不牺牲灵活性的同时实现复杂的功能。 1、Flask-SQLAlchemy与数据库sqllite交互 #app.py from flask import Flask from flask_migrate import Migrate from flask_sqlalchemy import SQLAlchemyapp Flask(__name__) app.config[SQLALCHEMY_DATABASE_URI] sqlite:///127.0.0.1.db # 相对路径 app.config[SQLALCHEMY_TRACK_MODIFICATIONS] False # 禁用模型修改跟踪节省资源 db SQLAlchemy(app) migrate Migrate(app, db) # 数据库表结构更新迁移class bank_info(db.Model):id db.Column(db.Integer, primary_keyTrue)branch_id db.Column(db.String(80), uniqueTrue, nullableFalse)application db.Column(db.String(120), uniqueTrue, nullableFalse)def __repr__(self):return fbank_info branch_id{self.branch_id}, application{self.application}app.route(/add_branch_id) def add_branch_id():# 添加一个新的分支机构branch bank_info(branch_id****, application授信总额****)# 检查是否已经存在该 branch_id 或 applicationexisting_branch bank_info.query.filter_by(branch_idbranch.branch_id).first()if existing_branch:return Branch ID already exists!db.session.add(branch)db.session.commit()return Branch added!app.route(/check_branch_id) def get_branch():# 查询所有信息branches bank_info.query.all()return br.join([fID: {branch.id}, branch_id: {branch.branch_id}, application: {branch.application} for branch in branches])if __name__ __main__:with app.app_context():db.create_all()# 在应用上下文中创建数据库表app.run(debugFalse) # 启动 运行后输入路由结果为 查询结果同理。 注意当表结构需要变更时需要单独执行命令 cd ./path/ # 项目目录下即app.py所在目录 flask db init # 初始化迁移环境创建一个 migrations/ 文件夹 flask db migrate -m Add email column to bank_info model # -m 用于写一个描述迁移的消息 flask db upgrade # 执行迁移# 如果删除了原来数据库文件需要重建 from your_app import db db.create_all()#直接查看表结构 sqlite3 your_database.db .schema bank_info 同时需要更新脚本 #app.py from flask import Flask from flask_migrate import Migrate from flask_sqlalchemy import SQLAlchemyapp Flask(__name__) app.config[SQLALCHEMY_DATABASE_URI] sqlite:///127.0.0.1.db # 使用相对路径 app.config[SQLALCHEMY_TRACK_MODIFICATIONS] False # 禁用模型修改跟踪以节省资源 db SQLAlchemy(app) migrate Migrate(app, db)#执行数据库迁移class bank_info(db.Model):id db.Column(db.Integer, primary_keyTrue)branch_id db.Column(db.String(80), uniqueFalse, nullableFalse)application db.Column(db.String(120), uniqueFalse, nullableFalse)email db.Column(db.String(120), nullableTrue) # 添加email字段def __repr__(self):return fbank_info branch_id{self.branch_id}, application{self.application}, email{self.email}app.route(/add_branch_id) def add_branch_id():# 添加一个新的分支机构branch bank_info(branch_id**1, application授信总额*,email***163.com)# 检查是否已经存在该 branch_id 或 applicationexisting_branch bank_info.query.filter_by(branch_idbranch.branch_id).first()if existing_branch:return Branch ID already exists!db.session.add(branch)db.session.commit() # 提交到数据库return Branch added!app.route(/check_branch_id) def get_branch():# 查询所有信息branches bank_info.query.all()return br.join([fID: {branch.id}, branch_id: {branch.branch_id}, application: {branch.application},email:{branch.email} for branch in branches])if __name__ __main__: # with app.app_context(): # db.create_all()# 在应用上下文中创建数据库表app.run(debugFalse) # 启动 注意当字段设置unique为True时每次插入的数据必须要求不一致否则无法插入。在项目目录下会生成对应的文件 2、Jinja2 模板引擎的使用 Jinja2 是 Flask 的默认模板引擎允许开发者将动态数据嵌入到 HTML 中生成富有交互性的页面。它支持变量、控制结构如 for 循环和 if 判断以及宏类似于函数的代码片段可以复用: #模板文件存在于 templates/hello.html !DOCTYPE html html langen headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleGreeting/title /head bodyh1Hello, {{ name }}!/h1 /body /htmlrender_template()可以用于呈现一个开发人员编写的html文件模板request.method用于获取url接收到的请求方式以此返回不同的响应页面 在 Flask 应用中使用这个模板: from flask import Flask, render_template# 创建 Flask 应用实例 app Flask(__name__)# 路由处理函数 app.route(/greet/name,methods[GET,POST])#url映射的函数要传参则在上述route路由中添加参数申明 def greet(name):if request.method GET:# 想要html文件被该函数访问到首先要创建一个templates文件将html文件放入其中# 该文件夹需要被标记为模板文件夹且模板语言设置为jinja2return render_template(hello.html, namename)# 此处欲发送post请求需要在对应html文件的form表单中设置method为postelif request.method POST:pass# 启动 Flask 应用 if __name__ __main__:app.run(debugFalse)render_template() 函数用于渲染 hello.html 模板并将变量 name 的值传递到模板中从而动态生成最终的 HTML 页面. 3、构建完整的 CRUD 应用 一个典型的 Web 应用需要对数据进行创建Create、读取Read、更新Update和删除Delete这被称为 CRUD 操作。借助 Flask可以很方便地构建一个支持 CRUD 操作的应用 #用 Flask 构建一个完整的 CRUD API。通过 HTTP 的 POST、GET、PUT 和 DELETE 方法客户端可以实现对 Item 对象的创建、读取、更新和删除操作from flask import Flask, request, jsonify from flask_sqlalchemy import SQLAlchemyapp Flask(__name__) app.config[SQLALCHEMY_DATABASE_URI] sqlite:///crud.db db SQLAlchemy(app)class Item(db.Model):id db.Column(db.Integer, primary_keyTrue)name db.Column(db.String(80), uniqueTrue, nullableFalse)def to_dict(self):return {id: self.id, name: self.name}app.route(/items, methods[POST]) def create_item():name request.json.get(name)item Item(namename)db.session.add(item)db.session.commit()return jsonify(item.to_dict()), 201app.route(/items, methods[GET]) def get_items():items Item.query.all()return jsonify([item.to_dict() for item in items])app.route(/items/int:item_id, methods[PUT]) def update_item(item_id):item Item.query.get_or_404(item_id)item.name request.json.get(name)db.session.commit()return jsonify(item.to_dict())app.route(/items/int:item_id, methods[DELETE]) def delete_item(item_id):item Item.query.get_or_404(item_id)db.session.delete(item)db.session.commit()return , 204if __name__ __main__:with app.app_context():db.create_all()app.run(debugFalse) 运行上行脚本打开postman新建一个文件执行操作 点击send如果成功则会出现 在浏览器里面输入对应路由显示为 表明数据新建成功。 如果想要更新或者是删除操作则分别选择put和DELETE选项发送给对应请求请求体路由输入对应ID即可请求体输入对应新的名称 4、Flask 中间件与蓝图 4.1. 中间件 中间件Middleware是位于请求与响应之间的代码用于对请求或响应进行处理。Flask 的中间件可以用来做很多事情例如记录日志、修改请求、或在响应中增加自定义的 HTTP 头等 from flask import Flask, jsonifyapp Flask(__name__)# 定义在请求处理之前执行的函数 app.before_request def before_request_func():print(Before request is called)# 定义在响应返回之前执行的函数 app.after_request def after_request_func(response):print(After request is called)# 在这里你可以修改响应如添加头信息等response.headers[X-Custom-Header] Hello Worldreturn response# 一个简单的路由 app.route(/) def home():return jsonify(messageHello, Flask!)if __name__ __main__:app.run(debugTrue)app.before_request 装饰器用于定义在每个请求处理之前执行的函数。这通常用于一些预处理任务比如验证用户身份、记录日志、设置请求上下文等。 该函数表示每一次请求之前可以执行某个特定功能的函数可以存在多个before_request装饰器执行顺序是由上到下先绑定的先执行并且先执行 flask app 的 before_request, 再执行 blueprint 的 before_request执行时机当客户端发出请求时Flask 在请求被处理之前调用 before_request_func。常见用途检查用户是否已经登录处理跨域请求CORS或者设置数据库连接等。 app.after_request 装饰器用于定义在每个请求处理完成后、响应返回给客户端之前执行的函数。这个函数接受一个 response 参数可以对响应进行修改或者执行一些收尾操作。 执行时机当请求处理完成并且响应准备返回时Flask 会调用 after_request_func。你可以对 response 进行修改例如添加 headers、修改响应内容等。常见用途设置响应头、日志记录、性能监控、跨域处理等。 app.before_request 和 app.after_request 是应用级别的装饰器适用于每一个请求。app.after_request 装饰器中的函数必须返回一个响应对象。如果没有对 response 做任何修改至少需要返回原始的 response 对象。 app.before_first_request与before_request的区别是只在第一次请求之前调用 该函数表示第一次请求之前可以执行的函数执行顺序同样也是先绑定的先执行 app.teardown_request每一次请求之后都会调用 该函数接收一个参数该参数是服务器出现的错误信息执行顺序也是先绑定的后执行只有在请求上下文被 pop 出请求栈的时候才会直接跳转到teardown_request所以在被正常调用之前即使某次请求有抛出错误该请求也都会被继续执行, 并在执行完后返回 response 4.2. 蓝图Blueprint 当应用规模变大时代码结构的组织变得至关重要。Flask 提供了 蓝图Blueprint组件来帮助开发者将应用模块化。在 Flask 中应用可以通过蓝图将不同的视图函数和路由分离开来使得代码更加结构化和易于管理。蓝图的作用是将视图函数、错误处理、静态文件、模板等逻辑与主应用程序分开便于进行模块化开发。在一个大型应用程序中蓝图可以将不同的功能区域分离使得不同的功能部分有独立的管理。在 Flask 应用中可以通过 app.register_blueprint() 将蓝图注册到应用程序中之后蓝图中的路由和视图就会成为主应用的一部分。 将用户相关的路由逻辑组织在一个独立的蓝图中并在主应用中注册这个蓝图从而使代码结构更加清晰和模块化 # 创建蓝图user.py from flask import Blueprint# 创建一个名为 user 的蓝图模块 user_bp Blueprint(user, __name__)# 定义蓝图中的一个路由 user_bp.route(/user/username) def show_user(username):return fUser: {username}# 注册蓝图 from flask import Flask from user import user_bp # from article import article_bpapp Flask(__name__)# 注册多个蓝图 app.register_blueprint(user_bp) # app.register_blueprint(article_bp)if __name__ __main__:app.run(debugTrue)5、url与视图函数的绑定 实现url与视图函数的绑定除了使用路由装饰器app.route还可以通过add_url_rule(rule,endpointNone,view_funcNone)方法其中         rule设置的url         endpoint给url设置的名称         view_func指定视图函数的名称 from flask import Flask,url_forapp Flask(__name__)app.route(/branch,endpointbranch) # 底层其实是用add_url_rule实现的 def check_branch():return branch Hive is nulldef my_test():return 这是测试查询页面 app.add_url_rule(rule/test,endpointtest,view_funcmy_test)# 请求上下文只有在发送request请求时才会被激活激活后request对象被设置为全局可访问 # 其内部封装了客户端发出的请求数据报文 # 此处是主动生成一个临时的测试请求上下文 with app.test_request_context():print(url_for(test)) # 输出结果为/testif __name__ __main__:app.run(debugFalse) 6、类试图和自定义装饰器 视图还可以由类来实现即标准类视图 定义时需要继承flask的views.View这一基类; 每个类视图内必须包含一个dispatch_request方法每当类视图接收到请求时都会执行该方法返回值的设定和视图函数相同 视图函数可以通过app.route和app.add_url_rule来进行注册映射到url但类视图只能通过app.add_url_rule来注册注册时view_func不能直接使用类名需要调用基类中的as_view方法来为自己取一个“视图函数名” 采用类视图的最大优势就是可以把多个视图内相同的东西放在父类中然后子类去继承父类而类视图不方便的地方就是每一个子类都要通过一个add_url_rule来进行注册。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外贸网站谷歌优化菏泽市建设局网站

盒子阴影 属性值为box-shadow,盒子阴影不占空间,不影响盒子之间的距离. 值说明h-shadow必需,水平阴影位置,允许为负值v-shadow必需,水平阴影位置,允许为负值blur可选,模糊距离,数值越大影子越模糊spread可选,影子的尺寸color可选,影子的颜色inset可选, 将外阴影改为内阴影(省…

企业网站建设北京网站需要服务器吗

漏洞描述 IP-guard是由溢信科技股份有限公司开发的一款终端安全管理软件,旨在帮助企业保护终端设备安全、数据安全、管理网络使用和简化IT系统管理。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危…

比分网站仿站建设科技布是什么面料

Feign的默认实现不支持连接池,换位Apache的HttpClient或者OKHttp连接池 引入依赖即可。 最佳实践 Feign的使用,一般抽取为单独的模块,引入依赖以及相关实体类,配置类等。在使用时引入接口依赖。 在引入依赖时,由于我…

网站设计与网站建设a卷东莞网站建设那家好

1 前言 如果你正在准备软件工程师或软件开发人员的面试,那么你可能知道由于其开放性质和广泛性,准备系统设计是多么困难,但同时你也不能忽略它。在软件工程界,如果你正在申请高级工程师/主管/架构师或更高级别的角色,系统设计是最受追捧的技能,也是整个过程中最重要的环节之一…

灵动网站建设企业类网站有哪些例子

A07_HttpRunner重定向_04_解决方案既然 HttpRunner 是对 requests 模块的封装,那我们就试图从 requests 中寻找答案,在其官网中发现了对重定向的描述和处理:地址:http://cn.python-requests.org/zh_CN/latest/user/quickstart.htm…

网站icp备案网址微动网站建设

本文讨论了领导者在沟通过程中如何避免成为传声筒,通过筛选、处理和总结信息,在向上、向下沟通时保持相关性和真实性,提高沟通效率和效果。原文: The Dumbest Mistake Leaders Make in Communication 中层管理者作为高层领导、下属团队和其他…

做家务的男人网站上海泵阀网站建设

近期转到研发岗,需要用到mysql、vs2008;之前由于没有做过,写下这篇文章记录下这周所学的东西!先安装好相关软件安装时间比较久耐心等待......安装完毕之后打开vs,Tools -> opptions ->设置完毕之后,点…

国外网站空间 月付购买网络商城系统

Uni-app 和 Vue 是两个不同的概念,它们之间的关系可以简单描述为: Vue: Vue.js 是一个流行的前端 JavaScript 框架,用于构建用户界面和单页面应用。Vue 具有简洁的语法、响应式数据绑定和组件化的特性,使得开发者可以更…

车险网站模版军事新闻最新消息中国南海今天

在Fragment中使用了騰訊的X5 webview,雖然好用,但是在Fragment中傳遞消息困難,想要返回上一頁,還得各種消息傳遞什么的,麻煩.可是在Fragment中又不能使用onKeyDown,那怎么辦了?哎,我是太菜了,也不想動腦子,那就在Fragment的最上面加了一個標題欄,里面放了一個textView標簽,監聽…

做高端品牌网站建设wordpress_域名输入后index of_然后点进取

那么,诚实签最关键的4个要点 是什么呢? 第一,证明你有一定的经济实力。 可能需要房产、存款等证明,也需要银行信用卡或借记卡半年流水证明(让人信服的每月进帐和消费能力)。 这些是为了证明,你可…

苏州相城区做网站公司苏州网站建设n苏州网站建设公司

1 Scilab简要介绍Scilab 是由法国国家信息、自动化研究院(INRIA)的科学家们开发的“开放源码”软件。Scilab是开源的软件,用户不仅可以在Scilab的许可证条件下自由使用该软件,还可以根据自己需要修改源代码,使之更加符合自身需要。与Matlab类…

中国建设银行官网站企业网银网页界面设计主要内容有哪些

在网络爬虫领域,动态渲染类型页面的数据提取和下载自动化是一个常见的挑战。本文将介绍如何利用Pyppeteer库完成这一任务,帮助您轻松地提取动态渲染页面中的数据表并实现下载自动化。 一、环境准备 首先,确保您已经安装了Python环境。接下来…

优秀品牌网站案例分析怎么给网站做推广

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 ICC2设置no 1x的方法如下: 1) set_placement_spacing_label -name X -lib_cells {*} -side right set_placement_spacing_label -name Y -lib_cells {*} -side left 2) set_placement_spacing_rul…

合肥网站优化排名推广可以做视频推广的网站

大家好!我是曾续缘💗 今天是《LeetCode 热题 100》系列 发车第 21 天 矩阵第 4 题 ❤️点赞 👍 收藏 ⭐再看,养成习惯 搜索二维矩阵 II 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&…

网站建设方案格式网络优化工程师发展前景

刷题总结 by lds 2023-9-5 文章目录 1.数组/字符串1.1 合并两个有序数组【easy】1.2 移除元素【easy】1.3 删除有序数组中的重复项【easy】1.4 删除有序数组中的重复项II【mid】1.5 多数元素【easy】1.6 大数相加---【美团面试手撕题目】1.7 轮转数组【mid】1.8 买卖股票的最佳…

做网站开发很赚钱吗中国建设银行招聘官网站

来源:新浪游戏,AR联盟等平台微软日本公司最近推出一个新的概念视频,它展示了HoloLens将如何在相对不久的将来用于自动船舶驾驶上。尽管HoloLens主要是面向开发者和研究人员,但这项设备是站在向我们展示AR潜能的最前沿。最新的例子…

深圳商业网站建设株洲在线论坛招聘

1、找到手机“设置”图标的包名 adb shell dumpsys activity top 得到包名: com.android.settings 2、拉下odex文件 1)、通过包名得到odex文件 adb shell pm list pakcage -f | grep com.android.settings 2)、得到结果 package:/system/priv-app/Settings/Settings.apk=co…

太原工程建设招投标信息网站WordPress调用发邮件

这恍恍的天日晒的大地嗞嗞的作响。这湉湉的阴雨下的祖国母亲到处洪水泛滥。人本不该有三六九等,可这丑陋的阴雨竟然选择性的泄洪到无辜的县区以示人却有三六九等。谁的财产不是财产,谁的生命不是生命?谁特妈的不是母亲养大的? 一首…

企业网站服务器跟域名都需要交钱吗做推广的公司

昨天我在办公室里,和我的一位同事谈论测试,他对编写单元测试有些不服气。 他使用的原因之一是有些测试似乎毫无意义,这使我想到了什么是单元测试,什么也不需要打扰。 考虑下面一个简单的不可变的Name Bean,其中包含一…

网站制作公司违法电子商务网站建设的步骤一般分为

1.简介 Java是使用最广泛的编程语言之一。 根据Github的最新报告 ,Java被列为仅次于JavaScript的第二大最常用的编程语言。 掌握Java的人有很多话题。 好消息是,您可以在线找到很多内容。 在这篇文章中,我们将对所有这些主题进行分类&#x…