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

百度网站流量查询drupal 做的网站

百度网站流量查询,drupal 做的网站,用html做班级网站,途牛网网站建设评价这里写目录标题 Flask 框架概述安装 Flask创建你的第一个 Flask 应用运行 Flask 应用 Flask 路由与视图函数动态路由支持多种 HTTP 请求方法使用 Jinja2 模板渲染 HTML模板继承与块 Flask 表单处理与用户输入安装 Flask-WTF创建一个简单的表单表单验证 Flask 的项目结构与部署项…

这里写目录标题

    • Flask 框架概述
        • 安装 Flask
        • 创建你的第一个 Flask 应用
        • 运行 Flask 应用
    • Flask 路由与视图函数
        • 动态路由
        • 支持多种 HTTP 请求方法
        • 使用 Jinja2 模板渲染 HTML
        • 模板继承与块
    • Flask 表单处理与用户输入
        • 安装 Flask-WTF
        • 创建一个简单的表单
        • 表单验证
    • Flask 的项目结构与部署
        • 项目结构
        • 部署 Flask 应用

Flask 框架概述

Flask 作为一个微框架,强调简单性和灵活性。它依赖于两个重要的 Python 库来提供核心功能:

  • Werkzeug:这是 Flask 的底层库,提供了 WSGI 接口、HTTP 请求和响应处理、路由等核心功能
  • Jinja2:一个功能强大的模板引擎,用于动态生成 HTML 页面
    Flask 的设计目的是让开发者能够快速开发应用,并提供了灵活的方式进行扩展。如果你不需要复杂的功能,Flask 的核心本身已经足够满足需求。如果你需要更多高级特性,可以通过 Flask 的扩展库进行补充
安装 Flask

安装 Flask 非常简单,只需使用 Python 的包管理工具 pip 即可:

[root@bogon ~]# pip3 install flask
Collecting flaskDownloading flask-3.1.1-py3-none-any.whl.metadata (3.0 kB)
Collecting blinker>=1.9.0 (from flask)Downloading blinker-1.9.0-py3-none-any.whl.metadata (1.6 kB)
Collecting click>=8.1.3 (from flask)Downloading click-8.2.1-py3-none-any.whl.metadata (2.5 kB)
Collecting itsdangerous>=2.2.0 (from flask)Downloading itsdangerous-2.2.0-py3-none-any.whl.metadata (1.9 kB)
Collecting jinja2>=3.1.2 (from flask)Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)
Collecting markupsafe>=2.1.1 (from flask)Downloading MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB)
Collecting werkzeug>=3.1.0 (from flask)Downloading werkzeug-3.1.3-py3-none-any.whl.metadata (3.7 kB)
Downloading flask-3.1.1-py3-none-any.whl (103 kB)━━━━━━━━━━ 103.3/103… 604.3 kB/s eta 0:00:00kB                               
Downloading blinker-1.9.0-py3-none-any.whl (8.5 kB)
Downloading click-8.2.1-py3-none-any.whl (102 kB)━━━━━━━━━━ 102.2/102… 305.5 kB/s eta 0:00:00kB                               
Downloading itsdangerous-2.2.0-py3-none-any.whl (16 kB)
Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)━━━━━━━━━━ 134.9/134… 188.2 kB/s eta 0:00:00kB                               
Downloading MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (23 kB)
Downloading werkzeug-3.1.3-py3-none-any.whl (224 kB)━━━━━━━━━━ 224.5/224… 118.7 kB/s eta 0:00:00kB                               
Installing collected packages: markupsafe, itsdangerous, click, blinker, werkzeug, jinja2, flask
Successfully installed blinker-1.9.0 click-8.2.1 flask-3.1.1 itsdangerous-2.2.0 jinja2-3.1.6 markupsafe-3.0.2 werkzeug-3.1.3
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

装完成后,你可以通过创建一个简单的 Flask 应用来验证是否安装成功

创建你的第一个 Flask 应用

Flask的应用结构非常简单,只需创建一个 Python 文件,并通过 Flask()类来实例化应用对象。以下是一个最简单的 Flask 应用示例:

[root@bogon ~]# vim app.py
from flask import Flask
#创建 Flask 应用实例
app =Flask( __name__)
#定义路由和视图函数
@app.route('/')
def hello_world():
return 'Hello, World!'
#启动应用
if  __name__ ==  '__main__':
app.run(debug=True,host='0.0.0.0',port=5000)

代码解析:

  • Flask(_name ):创建 Flask 应用实例,_name_参数用于 Flask 了解当前模块的名称,通常我们使用这个参数来帮助 Flask 在不同模块间进行配置
  • @app.route(‘/’):定义路由和视图函数的映射。'/'是根路径,当用户访问根 URL 时,Flask
    会调用 hello world()函数
  • return’Hello,world!':视图函数返回一个简单的字符串响应,Flask 会将其作为 HTTP 响应返回给客户端
  • app.run(debug=True):启动 Flask 开发服务器,debug=True 表示启用调试模式,这样可以在开发过程中自动重载应用,并在发生错误时显示详细信息
运行 Flask 应用

保存上述代码为 app.py,然后在命令行中运行:

[root@bogon ~]# python3 app.py* Serving Flask app 'app'* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.* Running on all addresses (0.0.0.0)* Running on http://127.0.0.1:5000* Running on http://192.168.10.101:5000
Press CTRL+C to quit* Restarting with stat* Debugger is active!* Debugger PIN: 127-259-505

这时Flask会启动一个开发服务器,默认会监听 127.0.0.1:5000。打开浏览器,访问http://127.0.0.1:5000/,你会看到“Hello,World!”的页面

Flask 路由与视图函数

Flask 的核心之一就是路由系统,它将用户访问的 URL与对应的视图函数相连接。Flask 通过装饰器@app.route()来定义路由,而视图函数则负责处理用户的请求并返回响应

动态路由

Flask 支持动态路由参数,可以通过 URL 中的动态部分来获取数据。以下是一个示例:

@app.route('/greet/<name>')
def greet(name):return f'hello,{lwy}!'

代码解析:

  • :这是一个动态路由参数,Flask 会提取 URL 中的 name 部分并将其传递给视图函数
  • 当用户访问/greet/John 时,name 的值将为 John,返回的响应为 Hello,John!
支持多种 HTTP 请求方法

Flask 不仅支持 GET 请求,还支持其他常见的 HTTP 请求方法,如 POST、PUT、DELETE 等。你可以通过methods 参数来指定允许的请求方法:

@app.route('/submit',methods=['post'])
def submit():return 'Form submitted successfully!'
[root@bogon ~]# curl -XPOST 192.168.10.101:5000/submit
Form submitted successfully!
192.168.10.101 - - [22/Apr/2025 17:07:06] "POST /submit HTTP/1.1" 200 -

代码解析:

  • methods=[‘POST’]:只允许 POST 请求访问此路由。如果用户通过 GET 请求访问,Flask 会返回405 Method Not Allowed 错误
使用 Jinja2 模板渲染 HTML

Flask 结合 Jinja2 模板引擎来动态生成 HTML 页面。你可以将 HTML 文件与 Python 代码分离,保持应用结构清晰。在 Flask 中,模板文件默认存放在 templates 文件夹中
假设我们有一个名为 greet.html 的模板文件,内容如下:

[root@bogon templates]# vim greet.html
<html lang="en">
<head>  
<meta charset="UTF-8"><title>Flask Example</title>
</head>
<body>  <h1>Hello,{{ name }}!</h1>
</body>
</html>
from flask import Flask,render_template@app.route('/greet/<name>')
def greet(name):return render_template('greet.html',name=name)

在 Flask 应用中,我们可以通过 render_template 函数渲染模板并传递动态数据:

代码解析:

  • render template(‘greet.html’,name=name):Flask会加载greet.html模板,并将name的值传递给模板。模板中的{{name }}会被替换为传入的值
模板继承与块

Flask 支持模板继承和块(B1ock)功能,这对于构建复杂页面非常有用。你可以在基础模板中定义通用的布局结构,在子模板中覆盖特定的部分
基础模板 base.html:

<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block title %}my website{% endblock %}</title>
</head>
<body>
<header>
<h1>Welcome to My Website</h1>
</header>
<div>
{% block content %}{% endblock %}
<footer>
<p>&copy; 2025 My Website</p>
</footer>
</body>
</html>

子模板 index.html:

{% extends 'base.html'%}
{% block title %}Home{% endblock %}
{% block content %}
<h2>Welcome to the homepage!</h2>
{% endblock %}

代码解析:

  • {% extends’base.html’%}:子模板继承了 base.html 模板
  • {% block title %}Home{% endblock %}:覆盖父模板中的 title 块
  • {% block content %}:定义页面的主要内容区域

Flask 表单处理与用户输入

Flask 可以通过表单来获取用户输入,常见的做法是结合 Flask-WTF 扩展来简化表单处理和验证Flask-WTF为Flask 提供了一个表单类,你可以在表单类中定义字段和验证规则

安装 Flask-WTF
[root@bogon ~]# pip3 install flask-wtf
Collecting flask-wtfDownloading flask_wtf-1.2.2-py3-none-any.whl.metadata (3.4 kB)
Requirement already satisfied: flask in /usr/local/lib/python3.11/site-packages (from flask-wtf) (3.1.1)
Requirement already satisfied: itsdangerous in /usr/local/lib/python3.11/site-packages (from flask-wtf) (2.2.0)
Collecting wtforms (from flask-wtf)Downloading wtforms-3.2.1-py3-none-any.whl.metadata (5.3 kB)
Requirement already satisfied: blinker>=1.9.0 in /usr/local/lib/python3.11/site-packages (from flask->flask-wtf) (1.9.0)
Requirement already satisfied: click>=8.1.3 in /usr/local/lib/python3.11/site-packages (from flask->flask-wtf) (8.2.1)
Requirement already satisfied: jinja2>=3.1.2 in /usr/local/lib/python3.11/site-packages (from flask->flask-wtf) (3.1.6)
Requirement already satisfied: markupsafe>=2.1.1 in /usr/local/lib64/python3.11/site-packages (from flask->flask-wtf) (3.0.2)
Requirement already satisfied: werkzeug>=3.1.0 in /usr/local/lib/python3.11/site-packages (from flask->flask-wtf) (3.1.3)
Downloading flask_wtf-1.2.2-py3-none-any.whl (12 kB)
Downloading wtforms-3.2.1-py3-none-any.whl (152 kB)━━━━━━━━ 152.5/1… 218.8   eta 0:00:00kB       kB/s               
Installing collected packages: wtforms, flask-wtf
Successfully installed flask-wtf-1.2.2 wtforms-3.2.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
创建一个简单的表单
from flask import Flask, render template, request
from flask wtf import FlaskForm
from wtforms import stringField
from wtforms.validators import DataRequired
app = Flask(__name__)
app.secret key='s3cr3t
class NameForm(FlaskForm):
name =stringField('Name',validators=[DataRequired()])
@app.route('/', methods=['GET','POST'])
def index():
form =NameForm()
if form.validate on submit():
return f'Hello, {form.name.data}!'
return render template("index.html',form=form)
if __name__== '__main__ ':
app.run(debug=True)

请添加图片描述
代码解析:

  • FlaskForm:继承自 FlaskForm 类,定义表单字段
  • StringField(‘Name’,validators=[DataRequired()]):定义了一个文本输入字段,并且通过 DataRequired()验证器确保字段不能为空
  • form.validate on submit():检査表单是否通过验证并被提交
表单验证

Flask 表单处理的强大之处在于它的验证机制。通过 wtforms,你可以非常方便地为表单字段添加各种验证规则。比如,除了 DataReguired(),你还可以使用:

  • Length(min=2,max=50):验证输入的长度
  • Email():验证输入是否是有效的邮箱地址
  • EqualTo(‘password’):验证两个字段的值是否相等

Flask 的项目结构与部署

项目结构

随着应用的复杂度增加,Flask应用的结构通常会发生变化。一个典型的Flask 项目结构如下:

/my_flask app
/app
/templates
index.html
/static
/css
/js
_init_py
routes .py
forms . py
run .py
  • /templates:存放所有 HTML 模板文件
  • /static:存放静态文件(如CSS、JS、图片等)
  • init_·py:初始化 Flask 应用
  • routes.py:定义所有路由和视图函数
  • forms.py:定义表单类
部署 Flask 应用

Flask应用的开发环境通常使用 Flask run 启动,但在生产环境中,我们需要通过更强大的 Web 服务器进行部署,常见的有:

  • Gunicorn:一个Python WSGI HTTP 服务器,常用于生产环境部署
  • Nginx:作为反向代理,前端处理静态文件请求,转发动态请求到Flask应用
    部署时,可以通过以下命令启动 Flask 应用:
gunicorn -w 4 run:app

这将启动一个4工作线程的 Gunicorn 服务器,run 是指向 Flask 应用实例的模块

http://www.yayakq.cn/news/797092/

相关文章:

  • 网站开发行业发展前景微信支付 网站备案
  • 网站哪家做的比较好为什么做电商网站
  • app手机端电子商务网站功能临海网站开发公司电话
  • 开发手机端网站模板网站怎么提交收录
  • 做游戏网站的前景做视频网站可以自学吗
  • 宣城做网站公司产品企业网站
  • 网站推广服务网站连锁增城电子商务网站建设
  • 做资金盘 互助盘的网站上海公关公司有哪些
  • 重庆企业网站推广代理宁波百度推广优化
  • 搜讯网站开发洛阳伟创科技
  • 网站建设招标无锡设计兼职在哪平台可以接单
  • 苏州专业高端网站建设机构小企业网站建设哪家便宜
  • 昆明网站制作在线推广策略是什么意思
  • 商城网站微信支付接口申请肇庆市seo网络推广
  • 汕头网站建设公司免费影视剧网站
  • 温州网站设计制作课程千图网素材免费
  • 常州做网站麦策智能建造师证书有用吗
  • 自己怎么做简单的网站免费域名注册网站哪个好
  • 闸北做网站公司网站服务公司业务范围包括
  • 电子商城网站建设与维护传统文化网站建设
  • 汕头市作风建设的网站河北网站设计推荐柚米科技
  • 银川住房和城乡建设厅网站wordpress 纯代码 雪花
  • 临猗县 保障住房和建设住建网站网站下载端口建设
  • 汽车装饰网站模板建设工程人员押证在哪个网站查
  • 做神马网站优化快速排名软件国内网站开发 框架
  • 建站宝盒做的网站保定网站建设浩森宇特
  • wordpress自定义工具栏佛山企业网站排名优化
  • 房产网站建设方案的论文用ps怎么做网站背景
  • 做网站的图片要求大小域名购买 万网
  • 黔江做网站网页浏览器排行榜前十名