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

怎么在网站备案号码上加一个工信部链接地址如何搜索关键词

怎么在网站备案号码上加一个工信部链接地址,如何搜索关键词,怎么做网站设计程序,福州网红景点初始Flask框架 Flask 是一个轻量级的 Python Web 框架,它基于 WSGI 工具包 Werkzeug 和模板引擎 Jinja2 构建,被广泛用于快速开发 Web 应用和 API。Flask 的设计理念是 “微而不缺”(Micro but not lacking),它提供了…

初始Flask框架

Flask 是一个轻量级的 Python Web 框架,它基于 WSGI 工具包 Werkzeug 和模板引擎 Jinja2 构建,被广泛用于快速开发 Web 应用和 API。Flask 的设计理念是 “微而不缺”(Micro but not lacking),它提供了核心功能(如路由、请求处理、会话管理),但不强制依赖特定的数据库或表单验证工具,开发者可以根据需求自由选择和集成第三方扩展。

核心特点

  1. 轻量级:无内置数据库、表单验证或用户认证系统,仅保留 Web 应用的核心功能。
  2. 灵活:支持各种数据库(SQLite、MySQL、PostgreSQL)、ORM(SQLAlchemy)、表单验证(WTForms)等。
  3. 可扩展:通过 Flask 扩展(如 Flask-RESTful、Flask-SQLAlchemy、Flask-Login)轻松添加功能。
  4. 学习曲线平缓:适合初学者快速上手 Web 开发。

Flask 与 Django 的对比

  • Flask:适合小型项目、API 开发、快速原型或需要高度定制的场景。
  • Django:内置 ORM、管理后台、表单验证等全套组件,适合大型、功能完整的 Web 应用。

基本工作流程

  1. 路由定义:通过装饰器(如 @app.route('/'))将 URL 映射到处理函数。
  2. 请求处理:接收 HTTP 请求,处理业务逻辑,返回响应(HTML、JSON 等)。
  3. 模板渲染:使用 Jinja2 模板引擎生成动态 HTML。
  4. 会话管理:通过 Cookie 或服务器端会话跟踪用户状态。

常用扩展

  • Flask-SQLAlchemy:数据库 ORM 工具,简化数据库操作。
  • Flask-RESTful:构建 RESTful API 的工具。
  • Flask-Login:处理用户认证和会话管理。
  • Flask-JWT-Extended:支持 JSON Web Token(JWT)认证。
  • Flask-CORS:处理跨域资源共享(CORS)问题。

实际应用场景

  • API 开发:构建轻量级后端服务(如 JSON API、GraphQL)。
  • Web 应用原型:快速验证想法,后期可扩展为大型项目。
  • 微服务:作为独立服务处理特定业务逻辑。
  • 数据可视化:结合前端框架(如 React、Vue)展示动态数据。

安装方法

通过 pip 安装 Flask:

pip3 install flask

示例Flask

创建一个简单flask

下面是一个简单的 Flask 应用示例,创建一个返回 “Hello, World!” 的 Web 服务:

from flask import Flask# 创建 Flask 应用实例,__name__ 表示当前模块名称
app = Flask(__name__)# 定义路由:当用户访问根路径 / 时,执行下方的函数
@app.route('/')
def hello_world():  # 视图函数,处理客户端请求并返回响应return 'Hello, world!'  # 返回字符串作为 HTTP 响应内容# 主程序入口:确保应用只在直接运行脚本时启动,而非被导入时
if __name__ == '__main__':# 启动 Flask 开发服务器# host='0.0.0.0' 允许外部网络访问# port=5000 指定服务器端口# debug=True 开启调试模式,修改代码后自动重启并显示详细错误信息app.run(host='0.0.0.0', port=5000, debug=True)

运行站点

python3 aaa.py

访问该站点

[root@localhost ~]# curl 192.168.10.101:5000
Hello,world!
###!!!!成功
Flask路由与视图函数
from flask import Flask# 创建 Flask 应用实例,__name__ 作为应用根路径的参考点
app = Flask(__name__)# 定义根路径路由:当用户访问网站根目录时触发
@app.route('/')
def hello_world():# 返回静态字符串作为 HTTP 响应return 'Hello,world!'# 定义动态路由:通过 URL 参数接收用户名
@app.route('/greet/<name>')
def greet(name):# 使用 f-string 格式化字符串,动态生成问候语return f'nihao, {name}'# 主程序入口:确保应用作为脚本直接运行时才启动服务器
if __name__ == '__main__':# 启动 Flask 开发服务器# host='0.0.0.0': 允许外部网络访问# port=5000: 监听 5000 端口# debug=True: 开启调试模式(自动重载代码 + 详细错误信息)app.run(host='0.0.0.0', port=5000, debug=True)

代码解释:

  • <name> 是 URL 变量,会被捕获并传递给 name 参数
  • f'nihao, {name}' 使用 Python 3.6+ 的格式化字符串语法

访问

[root@localhost ~]# curl 192.168.10.101:5000/greet/zhangsan
nihao, zhangsan
[root@localhost ~]# 
多种http请求方法

在上面原有的基础上增加一个route

@app.route('/submit',methods=['POST'])
def submit():return '提交成功'

代码功能

创建一个接收 POST 请求 的 API 端点 /submit,当客户端通过 POST 方法访问该路径时,返回固定文本 提交成功

  • @app.route:Flask

  • 的路由装饰器,将 URL 路径映射到视图函数。

  • /submit:定义访问路径,客户端需请求 http://域名/submit

  • methods=['POST']
    

    限制请求方法

    为 POST(默认仅支持 GET)。

    ✅ 常见 HTTP 方法:

    • GET:获取资源(如查询数据)。
    • POST:提交数据(如表单、文件上传)。
    • PUT:更新资源。
    • DELETE:删除资源。

访问

[root@localhost ~]# curl  -XPOST 192.168.10.101:5000/submit
提交成功[root@localhost ~]# 

使用Jinjia2模版渲染HTMl示例

什么是Jinjia?

Jinja2 是 Python 生态中最流行的 模板引擎,由 Flask 框架的开发者 Armin Ronacher 创建,用于将 Python 变量和逻辑嵌入到 HTML、XML 或其他文本格式中,广泛应用于 Web 开发、邮件模板、配置文件生成等场景。

核心特点

  1. 安全:默认自动转义 HTML,防止 XSS 攻击。
  2. 灵活:支持变量渲染、条件判断、循环、过滤器等。
  3. 可扩展:自定义过滤器、标签和测试函数。
  4. 高性能:编译模板为 Python 字节码,执行速度快。
  5. 集成友好:与 Flask、Django 等框架无缝集成。
与其他模板引擎对比
特性Jinja2Django 模板Mako
安全性中等
性能中等极高
灵活性中等极高
语法复杂度中等简单复杂
语法示例

使用jinjia2模版渲染html

[root@localhost ~]# mkdir templates   ###创建templates 目录 (flask默认模版存放位置)
[root@localhost ~]# cd templates ###进入目录
[root@localhost templates]# vim index.html
<html>
<head>
<meta charset='UTF-8'>
<title>你好,杜甫</title></head>
<body>
<h1> hello, {{ name }} </h1></body></html>

代码功能解析

  1. HTML 基础结构

    • 标准的 HTML5 文档结构,包含 headbody 标签。
    • charset='UTF-8' 确保中文等非 ASCII 字符正常显示。
  2. Jinja2 模板语法

    <h1> hello, {{ name }} </h1>
    
    • {{ name }} 是 Jinja2 的 变量占位符,会在渲染时被替换为 Python 传递的数据。
    • 例如,若 Python 代码传递 name='李白',则最终页面会显示 hello, 李白
  3. 静态与动态内容结合

    • <title>你好,杜甫</title> 是静态文本,始终显示 “你好,杜甫”。
    • <h1> hello, {{ name }} </h1> 是动态内容,name 会被替换。
from flask import Flask, render_template# 创建 Flask 应用实例
app = Flask(__name__)# 定义动态路由:接收 URL 中的 name 参数
@app.route('/greet/<name>')
def greet(name):# 渲染 templates/index.html 模板,并将 name 参数传递给模板# 模板中的 {{ name }} 会被替换为实际传入的值return render_template('index.html', name=name)# 主程序入口:确保应用作为脚本直接运行时才启动服务器
if __name__ == '__main__':# 启动 Flask 开发服务器# host='0.0.0.0': 允许外部网络访问# port=5000: 监听 5000 端口# debug=True: 开启调试模式(自动重载代码 + 详细错误信息)app.run(host='0.0.0.0', port=5000, debug=True)

这里站点的name值会传参给网页中的name值

访问验证
[root@localhost ~]# curl 192.168.10.101:5000/greet/lisi  ##这里我们输入lisi name参数传参给下方网页中的name
<html>
<head>
<meta charset='UTF-8'>
<title>你好,杜甫</title></head>
<body>
<h1> hello, lisi </h1>   ###这里的lisi参数是有站点中name传参</body></html>

模板的继承与块

什么是模版的继承

模板继承是 Jinja2(以及许多其他模板引擎)提供的一种强大机制,用于创建可复用的模板结构。它允许你定义一个基础模板(包含通用布局),然后通过子模板继承并覆盖特定部分,从而避免代码重复。

核心概念
  • 基础模板:定义网站的整体结构(如头部、导航栏、页脚),包含可被子模板替换的 块(block)
  • 子模板:继承基础模板,并通过 {% block %} 标签覆盖特定区域的内容。
  • 基础模版一定写入到子模版内
示例

站点文件

# 导入 Flask 框架和模板渲染函数
from flask import Flask, render_template# 创建 Flask 应用实例,__name__ 表示当前模块名称
app = Flask(__name__)# 定义根路径 '/' 的路由处理函数
@app.route('/')
def aaa():# 渲染并返回 templates 目录下的 base.html 模板# 注意:需要确保 templates 目录存在且包含 base.html 文件return render_template('base.html')# 应用程序入口点
if __name__ == '__main__':# 启动 Flask 开发服务器# host='0.0.0.0' 允许外部访问服务器# port=5000 指定服务器端口为 5000# debug=True 开启调试模式,代码修改后自动重启服务器app.run(host='0.0.0.0', port=5000, debug=True)

关键注释说明:

  1. Flask 实例创建:通过 Flask(__name__) 创建应用实例

  2. 路由定义:使用 @app.route 装饰器定义 URL 路由

  3. 模板渲染render_template 函数会在 templates 目录中查找指定的模板文件

  4. 开发服务器配置

    • host='0.0.0.0' 使服务器可通过网络访问
    • debug=True 仅用于开发环境,生产环境应禁用
  5. 应用入口if __name__ == '__main__' 确保代码作为脚本直接运行时才启动服务器

基础模版 base.html

<!DOCTYPE html>
<!-- 设置页面语言为简体中文 -->
<html lang="zh-CN">
<head><!-- 设置字符编码为 UTF-8 --><meta charset="UTF-8"><!-- 配置响应式布局,确保在移动设备上正确显示 --><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 使用 Jinja2 模板引擎的块标签,允许子模板覆盖页面标题 --><title>{% block title %}My website{% endblock %}</title><!-- 引入 Font Awesome 图标库 --><link href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css" rel="stylesheet">
</head>
<body><!-- 页面头部区域,通常包含导航栏 --><header><h1>nihao</h1><!-- 导航菜单,使用无序列表实现 --><nav><ul><li><a href="/">首页</a></li><li><a href="/about">关于</a></li><li><a href="/contact">联系我们</a></li></ul></nav></header><!-- 主内容区域,使用 Tailwind CSS 类实现居中布局和内边距 --><!-- container mx-auto 使内容居中,px-4 提供水平内边距,py-8 提供垂直内边距 --><main class="container mx-auto px-4 py-8"><!-- Jinja2 块标签,子模板将在这里插入具体内容 -->{% block content %}{% endblock %}</main><!-- 页脚区域,使用深灰色背景和白色文字 --><footer class="bg-gray-800 text-white py-8"><div class="container mx-auto px-4"><p>© 2025 版权所有</p></div></footer>
</body>
</html>

代码结构说明

  1. 文档类型与语言设置
    • <!DOCTYPE html> 声明使用 HTML5 标准
    • lang="zh-CN" 指定页面语言为简体中文
  2. 头部元信息
    • 字符编码设置
    • 响应式布局配置
    • 动态标题块(可被子模板覆盖)
    • 外部资源引入
  3. 页面结构
    • <header>:页面头部区域,包含网站标题和导航
    • <main>:主要内容区域,使用 Tailwind CSS 类实现响应式布局
    • <footer>:页脚区域,显示版权信息
  4. 模板继承机制
    • {% block title %}:允许子模板自定义页面标题
    • {% block content %}:子模板的主要内容将插入此处

验证

用浏览器访问更加直观

http://192.168.10.101:5000/
CTYPE html>
nihao
首页
关于
联系我们
© 2025 版权所有

总结

Flask 的 “微框架” 特性使其成为灵活、高效的开发工具,尤其适合追求简洁性和自由度的开发者。无论是个人项目、企业级应用,还是 API 服务,Flask 都能以最小的学习成本实现强大功能。

http://www.khdw.cn/news/51573.html

相关文章:

  • 长沙 做营销型网站的公司百度手机助手官网
  • 北京最大专业网站建设微信搜一搜seo优化
  • 网站优化推广怎么做360广告联盟平台
  • 济南手工网站建设今日新闻播报
  • 网站开发是做什么长春网站建设定制
  • 郑州做企业网站的公司seo销售是做什么的
  • 网站建设售后服务承诺书google play 应用商店
  • 查看网站的注册时间百度快照收录入口
  • 潍坊住房和城乡建设厅网站电话抖音关键词排名软件
  • 建站abc小程序营销伎巧第一季
  • 网站推广品牌seo的工作流程
  • 成都游戏网站开发爱网站
  • 免费的国外代理ipseo排名优化首页
  • 深圳通公司网站国内免费b2b网站大全
  • 淘宝网站建设 深圳重庆网站外包
  • 学java做网站需要学什么中国最大网站排名
  • favicon.ico wordpressseo 排名 优化
  • 本地南通网站建设如何快速收录一个网站的信息
  • 易语言网站怎么做图片外链工具
  • 做彩票网站服务器网站域名综合查询
  • 电脑版网页游戏网站如何优化
  • 官方网站建设工程规划不受容积率限制吗?商丘网站优化公司
  • 优设网文案素材win7一键优化工具
  • 沧州市网站制作公司优就业seo怎么样
  • 建设地方新闻网站的意义小红书推广平台
  • 天津去山西高铁做哪个网站北京百度seo排名点击软件
  • 动态网页制作精彩范例seo诊断a5
  • wordpress与typecho免费网站做seo
  • 百度推广客服电话24小时常州网站优化
  • 备案网站应用服务广东公共广告20120708