wordpress 链接小图标,搜索引擎优化内容包括哪些方面,注册公司流程和要求,it运维专员Python 的 Web 开发框架种类繁多#xff0c;常见的有 Django 和 Flask 这两个框架。它们各有优点#xff0c;适合不同类型的 Web 应用开发需求。下面#xff0c;我将详细介绍这两大主流框架的使用方法#xff0c;让你快速上手 Python 的 Web 开发。 1. Django
Django 是一…Python 的 Web 开发框架种类繁多常见的有 Django 和 Flask 这两个框架。它们各有优点适合不同类型的 Web 应用开发需求。下面我将详细介绍这两大主流框架的使用方法让你快速上手 Python 的 Web 开发。 1. Django
Django 是一个功能齐全、强大且高效的全栈 Web 开发框架适合快速开发复杂的 Web 应用。它内置了很多功能如 ORM对象关系映射、表单处理、用户认证、模板引擎等。
Django 安装
首先你需要通过 pip 安装 Django
pip install django创建一个 Django 项目 创建项目 使用 django-admin startproject 命令创建一个新项目。 django-admin startproject mysite启动开发服务器 进入项目目录启动 Django 的开发服务器。 cd mysite
python manage.py runserver打开浏览器访问 http://127.0.0.1:8000/你将看到 Django 的欢迎页面。
创建一个 Django 应用
在 Django 中项目由多个应用组成。应用是功能模块可以独立运行。 创建应用 python manage.py startapp blog这将在项目目录下创建一个名为 blog 的应用文件夹。 注册应用 打开项目的 settings.py 文件找到 INSTALLED_APPS将新创建的 blog 应用添加进去 INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,blog, # 注册新应用
]定义模型 (Model)
Django 的模型是定义数据库表的方式。假设你想创建一个博客文章模型。 在 models.py 中定义模型 from django.db import modelsclass Post(models.Model):title models.CharField(max_length200)content models.TextField()created_at models.DateTimeField(auto_now_addTrue)创建数据库迁移 Django 使用迁移来管理数据库模式。首先创建迁移文件 python manage.py makemigrations应用迁移 应用迁移将模型映射到数据库 python manage.py migrate创建视图 (Views)
视图是处理请求并返回响应的逻辑。 在 views.py 中定义视图 from django.shortcuts import render
from .models import Postdef post_list(request):posts Post.objects.all()return render(request, blog/post_list.html, {posts: posts})设置 URL 路由 在 blog 应用下创建一个 urls.py 文件并添加路由 from django.urls import path
from . import viewsurlpatterns [path(, views.post_list, namepost_list),
]连接项目的 urls.py 在项目的 mysite/urls.py 中包含应用的 URL from django.urls import include, pathurlpatterns [path(blog/, include(blog.urls)),path(admin/, admin.site.urls),
]模板 (Templates)
Django 使用模板来渲染 HTML 页面。
创建模板文件 在 blog 文件夹下创建一个 templates/blog/post_list.html 文件填入以下内容!DOCTYPE html
html
bodyh1Blog Posts/h1ul{% for post in posts %}li{{ post.title }} - {{ post.created_at }}/li{% endfor %}/ul
/body
/html现在访问 http://127.0.0.1:8000/blog/你会看到博客文章列表展示在页面上。 2. Flask
Flask 是一个轻量级的 Web 框架适合小型应用或 API 开发。与 Django 相比Flask 更灵活但需要你自行选择和配置许多工具和库。
Flask 安装
通过 pip 安装 Flask
pip install Flask创建一个简单的 Flask 应用 创建 Flask 项目 在项目目录下创建一个名为 app.py 的文件写入以下代码 from flask import Flaskapp Flask(__name__)app.route(/)
def home():return Hello, Flask!if __name__ __main__:app.run(debugTrue)运行 Flask 项目 在终端中运行 python app.py打开浏览器访问 http://127.0.0.1:5000/你会看到页面显示 “Hello, Flask!”。
路由和视图
Flask 使用装饰器定义路由。 定义路由和视图 你可以根据 URL 创建不同的视图 app.route(/hello/name)
def hello(name):return fHello, {name}!动态路由 Flask 支持动态 URL你可以使用变量捕获 URL 参数。 app.route(/user/username)
def show_user_profile(username):return fUser {username}模板 (Templates)
Flask 使用 Jinja2 作为模板引擎允许动态生成 HTML。 创建模板目录 在项目目录下创建一个名为 templates 的文件夹并在其中创建 index.html 文件 !DOCTYPE html
html
bodyh1Hello, {{ name }}!/h1
/body
/html渲染模板 修改 app.py使用 render_template() 函数渲染模板 from flask import render_templateapp.route(/hello/name)
def hello(name):return render_template(index.html, namename)访问 现在访问 http://127.0.0.1:5000/hello/Flask你会看到页面显示 “Hello, Flask!”。
表单处理
你可以使用 Flask-WTF 来处理表单输入。 安装 Flask-WTF pip install Flask-WTF表单示例 from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequiredclass NameForm(FlaskForm):name StringField(What is your name?, validators[DataRequired()])submit SubmitField(Submit)表单视图 创建表单视图并处理表单提交 from flask import Flask, render_template, redirect, url_for
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitFieldapp Flask(__name__)
app.config[SECRET_KEY] secret!class NameForm(FlaskForm):name StringField(What is your name?)submit SubmitField(Submit)app.route(/form, methods[GET, POST])
def form():form NameForm()if form.validate_on_submit():return redirect(url_for(hello, nameform.name.data))return render_template(form.html, formform)总结
Django 是一个全功能的框架适合快速开发复杂的 Web 应用特别是当你需要使用强大的后台管理界面、ORM 和用户身份验证时。Flask 是一个轻量级框架更灵活适合较小的项目和 API 开发需要你自己选择和配置各种库。
无论选择哪个框架关键是根据项目需求和个人喜好灵活运用这些工具进行开发。如果你想要更详细的代码示例或遇到任何问题随时问我