news 2026/3/26 19:37:31

如何用Python搭建一个网站

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用Python搭建一个网站

用 Python 搭建一个网站有多种路径,2025–2026 年的主流选择已经非常清晰。

目前(2026 年初)最常见的三个起点是:

目标 / 场景2025–2026 最推荐框架学习曲线启动速度性能排名典型公司/项目类型推荐指数 (2026)
传统完整网站(有后台、用户系统、CMS、管理面板)Django中等最快中等电商、管理后台、内容平台、SaaS★★★★★
现代高性能 API + 前后端分离(React/Vue/小程序/H5)FastAPI较低非常快最快AI 服务、微服务、移动后端、数据接口★★★★★
极简原型、个人小站、学习 Web 基础、非常灵活控制Flask最低中上小工具、内部服务、教学项目★★★★

2026 年快速选型决策树

问自己三个问题(按顺序):

  1. 你是否需要开箱即用的用户认证、权限、Admin 后台、ORM、表单等一大堆功能?
    → 是 → 选Django(最省事)

  2. 你的主要目标是构建高性能 RESTful/GraphQL/WebSocket API,并且打算搭配现代前端(React/Vue/Svelte/Next.js 等)?
    → 是 → 选FastAPI(目前最火、最现代)

  3. 你想自己掌控一切、写最少的 boilerplate 代码、做极简项目/学习 HTTP 原理?
    → 是 → 选Flask(最自由)

下面给出三种框架从零到能跑起来的最短路径(2026 年最新写法)。

路径一:Django(最适合完整网站)

# 1. 安装(推荐虚拟环境)python -m venv venvsourcevenv/bin/activate# Windows 用 venv\Scripts\activatepipinstalldjango# 2. 创建项目 + 应用django-admin startproject mysitecdmysite python manage.py startapp blog# 3. settings.py 中注册应用# mysite/settings.pyINSTALLED_APPS=[...'blog.apps.BlogConfig',]# 4. 创建超级用户(管理后台用)python manage.py makemigrations python manage.py migrate python manage.py createsuperuser# 5. 写最简单的模型 + 视图 + 模板(blog/models.py)from django.dbimportmodels class Post(models.Model): title=models.CharField(max_length=200)content=models.TextField()created_at=models.DateTimeField(auto_now_add=True)def __str__(self):returnself.title# blog/views.pyfrom django.shortcutsimportrender from .modelsimportPost def index(request): posts=Post.objects.all()returnrender(request,'blog/index.html',{'posts':posts})# mysite/urls.pyfrom django.contribimportadmin from django.urlsimportpath, include urlpatterns=[path('admin/', admin.site.urls), path('', include('blog.urls')),]# blog/urls.py 新建from django.urlsimportpath from.importviews urlpatterns=[path('', views.index,name='index'),]# 创建 templates/blog/index.html<!DOCTYPE html><html><head><title>我的博客</title></head><body><h1>最新文章</h1><ul>{%forpostinposts %}<li>{{post.title}}-{{post.created_at}}</li>{% endfor %}</ul></body></html># 6. 启动python manage.py runserver

访问 http://127.0.0.1:8000/ 就能看到页面,http://127.0.0.1:8000/admin/ 有管理后台。

路径二:FastAPI(2026 年最推荐的现代 API 后端)

pipinstallfastapi uvicorn[standard]sqlalchemy pydantic-settings# main.pyfrom fastapiimportFastAPI, Depends, HTTPException from sqlalchemyimportcreate_engine, Column, Integer, String, DateTime from sqlalchemy.ext.declarativeimportdeclarative_base from sqlalchemy.ormimportsessionmaker, Session from datetimeimportdatetime from pydanticimportBaseModelimportuvicorn# 数据库(SQLite 示例)DATABASE_URL="sqlite:///./blog.db"engine=create_engine(DATABASE_URL)SessionLocal=sessionmaker(autocommit=False,autoflush=False,bind=engine)Base=declarative_base()class Post(Base): __tablename__="posts"id=Column(Integer,primary_key=True,index=True)title=Column(String,index=True)content=Column(String)created_at=Column(DateTime,default=datetime.utcnow)Base.metadata.create_all(bind=engine)# Pydantic 模型class PostCreate(BaseModel): title: str content: str class PostOut(PostCreate): id: int created_at: datetime class Config: from_attributes=True app=FastAPI(title="我的博客 API")# 依赖def get_db(): db=SessionLocal()try: yield db finally: db.close()@app.post("/posts/",response_model=PostOut)def create_post(post: PostCreate, db: Session=Depends(get_db)): db_post=Post(**post.model_dump())db.add(db_post)db.commit()db.refresh(db_post)returndb_post @app.get("/posts/")def read_posts(db: Session=Depends(get_db)):returndb.query(Post).all()if__name__=="__main__":uvicorn.run(app,host="0.0.0.0",port=8000)

启动:python main.pyuvicorn main:app --reload

访问 http://127.0.0.1:8000/docs → 自动 Swagger 文档界面(2026 年最爽的开发体验之一)

路径三:Flask(最简单、最灵活)

pipinstallflask flask-sqlalchemy# app.pyfrom flaskimportFlask, render_template, request, redirect, url_for from flask_sqlalchemyimportSQLAlchemy from datetimeimportdatetime app=Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI']='sqlite:///blog.db'app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False db=SQLAlchemy(app)class Post(db.Model):id=db.Column(db.Integer,primary_key=True)title=db.Column(db.String(200),nullable=False)content=db.Column(db.Text,nullable=False)created_at=db.Column(db.DateTime,default=datetime.utcnow)with app.app_context(): db.create_all()@app.route('/')def index(): posts=Post.query.all()returnrender_template('index.html',posts=posts)@app.route('/create',methods=['GET','POST'])def create():ifrequest.method=='POST':title=request.form['title']content=request.form['content']post=Post(title=title,content=content)db.session.add(post)db.session.commit()returnredirect(url_for('index'))returnrender_template('create.html')if__name__=='__main__':app.run(debug=True)

创建templates/index.htmltemplates/create.html(类似上面 Django 的模板)。

启动:python app.py

总结建议(2026 年视角)

  • 第一次写网站→ Flask(最容易理解 HTTP、路由、模板、表单)
  • 想快速出完整产品(带登录、权限、后台) → Django
  • 主要做 API、前后端分离、微服务、AI 接口、追求性能与现代感 →FastAPI(目前增长最快、社区最活跃)

你目前的目标是哪一种?

  • 个人博客 / 展示站?
  • 前后端分离的现代 Web App?
  • RESTful API 或 AI 服务接口?
  • 带管理后台的企业级系统?

告诉我你的具体需求(功能、技术栈偏好、是否要数据库等),我可以给你更精确的下一步代码 + 目录结构 + 部署建议。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/26 14:23:29

json的几种标准格式

JSON 的几种标准格式&#xff08;以及最常见的实际使用变体&#xff09; JSON&#xff08;JavaScript Object Notation&#xff09;本身在官方标准&#xff08;RFC 8259 / ECMA-404&#xff09;中只有一种核心语法&#xff0c;但在实际使用中&#xff0c;因为不同的场景、约定…

作者头像 李华
网站建设 2026/3/21 7:20:34

2026年技巧:用抖音训练测试AI模型

AI测试的新纪元 随着2026年AI技术加速渗透测试领域&#xff0c;抖音海量用户行为数据成为训练AI模型的黄金资源。软件测试从业者可借此预测公众号内容热度&#xff0c;优化测试策略&#xff0c;提升内容质量与用户粘性。本文将从专业视角解析热度机制&#xff0c;并提供数据驱…

作者头像 李华
网站建设 2026/3/26 13:16:52

开源工具如何让测试报告美感飙升200%:专业解析与实战指南

在软件测试领域&#xff0c;报告不仅是项目成果的展示&#xff0c;更是团队协作和决策的基石。然而&#xff0c;传统报告往往因格式呆板、数据堆砌而缺乏吸引力&#xff0c;导致关键信息被淹没。开源工具的崛起正颠覆这一局面&#xff0c;通过自动化美化功能&#xff0c;将报告…

作者头像 李华
网站建设 2026/3/15 2:39:04

情感化工具设计:让测试报告不再冰冷

当测试报告遇上情感化设计 在软件测试领域&#xff0c;报告常被视为冰冷的文档——充满技术术语却缺乏人情味。然而&#xff0c;公众号内容热度分析显示&#xff0c;情感化元素是引爆流量的核心&#xff1a;情感类文章&#xff08;如职场压力、人际冲突&#xff09;阅读量稳定…

作者头像 李华
网站建设 2026/3/24 13:08:12

‌2026年测试覆盖率作弊检测术终极指南

测试覆盖率是软件质量的核心指标&#xff0c;但2026年&#xff0c;作弊行为&#xff08;如伪造测试用例或选择性执行测试&#xff09;正侵蚀其可信度。本指南从专业角度解析检测技术&#xff0c;结合AI工具和行业趋势&#xff0c;为测试从业者提供实战策略。 ‌一、测试覆盖率…

作者头像 李华
网站建设 2026/3/25 10:25:52

服务器卡顿之——CPU 性能分析

服务器卡顿很大一部分时候都和 CPU 性能瓶颈 有关&#xff0c;尤其是线上环境突然响应慢、卡顿、甚至假死时&#xff0c;第一反应往往是“CPU 是不是爆了”。 下面用最实操的思路、步骤和命令&#xff0c;带你从“现象 → 定位 → 根因 → 优化”完整走一遍。适用于 CentOS / …

作者头像 李华