Skip to content

Web 开发与 API

Flask 框架

基本路由与视图函数

  • Flask 是一个微框架,使用非常简单。通过路由(route)来处理不同的 URL 请求。
python
from flask import Flask

app = Flask(__name__)

# 路由与视图函数
@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(debug=True)
  • 路由 是指将 URL 与视图函数绑定,通过 @app.route() 来定义不同的路径。
  • 视图函数 是用于处理客户端请求并返回响应的函数。

模板渲染

Flask 使用 Jinja2 模板引擎 来渲染 HTML 页面,可以将动态内容嵌入到 HTML 中。

python
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html', name="Flask")

# 在 templates 文件夹中创建 index.html 文件:
# <html>
# <body>
#     <h1>Hello {{ name }}</h1>
# </body>
# </html>

通过 render_template 方法,可以将动态数据传递给 HTML 模板,模板中的 是占位符,会被传入的变量替代。

RESTful API 开发

Flask 可以方便地开发 RESTful API,处理 GET、POST、PUT、DELETE 等 HTTP 方法。

python
from flask import Flask, jsonify, request

app = Flask(__name__)

# 模拟的数据库
data = {'items': ['apple', 'banana', 'orange']}

@app.route('/items', methods=['GET'])
def get_items():
    return jsonify(data)

@app.route('/items', methods=['POST'])
def add_item():
    new_item = request.json['item']
    data['items'].append(new_item)
    return jsonify(data)

if __name__ == '__main__':
    app.run(debug=True)
  • GET 请求 用于获取数据。
  • POST 请求 用于提交数据。通过 request.json 获取请求体中的 JSON 数据。

Django 框架

项目结构

Django 是一个功能齐全的 Web 框架,带有强大的 MVC 架构(在 Django 中称为 MVT:Model-View-Template)。

项目的典型结构如下:

myproject/
    manage.py
    myapp/
        __init__.py
        models.py
        views.py
        urls.py
        templates/
            myapp/
                index.html
  • manage.py:Django 的项目管理工具,负责项目的启动和管理命令。
  • models.py:定义数据库模型(ORM)。
  • views.py:处理用户请求和返回响应。
  • urls.py:定义 URL 与视图的映射关系。
  • templates/:存放 HTML 模板文件。

模型、视图、模板(MVT)

  • 模型(Model):定义数据库表及其字段,Django 使用 ORM(对象关系映射)与数据库交互。
python
# models.py
from django.db import models

class Item(models.Model):
    name = models.CharField(max_length=100)
    price = models.DecimalField(max_digits=10, decimal_places=2)
  • 视图(View):在 views.py 中编写视图函数,负责处理请求、获取数据并返回响应。
python
# views.py
from django.shortcuts import render
from .models import Item

def item_list(request):
    items = Item.objects.all()  # 查询所有Item数据
    return render(request, 'item_list.html', {'items': items})
  • 模板(Template):使用 HTML 模板显示数据。
html
<!-- item_list.html -->
<html>
<body>
    <h1>Item List</h1>
    <ul>
        {% for item in items %}
            <li>{{ item.name }}: ${{ item.price }}</li>
        {% endfor %}
    </ul>
</body>
</html>

数据库操作与 ORM

  • Django ORM 是 Django 与数据库交互的核心,通过定义模型类来创建、查询、更新、删除数据库记录。
  • 例如,创建一个数据库表对应的模型 Item,并可以通过 Item.objects.create() 来创建新记录。
python
# 添加一个新商品
item = Item.objects.create(name='Apple', price=1.99)

通过 Django 的 ORM,开发者不需要编写 SQL 语句,就能进行数据库操作。

HTTP 与 API 请求

使用 requests 进行 HTTP 请求

requests 是处理 HTTP 请求的强大库,支持 GET、POST、PUT、DELETE 等操作。

python
import requests

# 发送 GET 请求
response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
print(response.json())  # 返回 JSON 数据

# 发送 POST 请求
payload = {'title': 'foo', 'body': 'bar', 'userId': 1}
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=payload)
print(response.json())
  • requests.get() 发送 GET 请求,获取数据。
  • requests.post() 发送 POST 请求,向服务器提交数据。

REST API 与 JSON 解析

在 Web 开发中,REST API 是一种常见的 API 设计风格,它使用 HTTP 方法来操作资源,并通常返回 JSON 格式的数据。

通过 requests 进行 REST API 调用并解析返回的 JSON 数据:

python
import requests

# 发送请求并获取JSON响应
response = requests.get('https://jsonplaceholder.typicode.com/posts')
data = response.json()

# 遍历并解析数据
for post in data:
    print(f"Title: {post['title']}")
    print(f"Body: {post['body']}")
    print('---')
编程洪同学服务平台是一个广泛收集编程相关内容和资源,旨在满足编程爱好者和专业开发人员的需求的网站。无论您是初学者还是经验丰富的开发者,都可以在这里找到有用的信息和资料,我们将助您提升编程技能和知识。
专业开发
高端定制
售后无忧
站内资源均为本站制作或收集于互联网等平台,如有侵权,请第一时间联系本站,敬请谅解!本站资源仅限于学习与参考,严禁用于各种非法活动,否则后果自行负责,本站概不承担!