news 2026/5/24 19:24:41

如何用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/5/20 11:59:06

‌2026年测试数据生成需求暴增:成因、热度与从业者突围指南

现象概述‌ 2026年初&#xff0c;软件测试领域迎来颠覆性变革——测试数据生成需求呈现爆发式增长。这一现象并非偶然&#xff0c;而是多重技术与社会因素交织的结果。随着AI技术渗透至各行各业&#xff0c;测试数据作为保障系统稳定性的基石&#xff0c;其重要性被空前放大。…

作者头像 李华
网站建设 2026/5/24 3:56:38

收藏!华为员工转岗大模型拿百万年薪,小白/程序员入门LLM必看指南

近日&#xff0c;我在技术社群刷到一则刷屏热议帖&#xff1a;一位华为在职员工&#xff0c;从传统开发岗成功转型大模型算法岗后&#xff0c;高调晒出百万年薪收入条&#xff0c;还毫无保留地分享了自己的转岗全流程心得。这则帖子瞬间在程序员圈引爆讨论——评论区里&#xf…

作者头像 李华
网站建设 2026/5/22 13:47:17

基于vue3实施部门权限分配及审批的监管系统-开题报告 黄耀兴202006050071 (2)

目录研究背景与意义系统目标技术选型系统模块设计创新点预期成果项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作研究背景与意义 部门权限分配及审批监管系统在现代企业管理中具有重要作用。随着企业规模扩…

作者头像 李华
网站建设 2026/5/22 5:22:07

基于Vue技术的营养食品搭配系统的设计与实现任务书

目录系统背景与目标技术选型核心功能模块关键实现技术预期成果备注项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作系统背景与目标 现代人对健康饮食需求日益增长&#xff0c;但缺乏专业营养知识。该系统基…

作者头像 李华
网站建设 2026/5/23 14:59:58

域控制器架构十年演进

域控制器&#xff08;Domain Control Unit, DCU&#xff09; 的十年&#xff08;2015–2025&#xff09;&#xff0c;是汽车电子电气架构&#xff08;EEA&#xff09;从“诸侯割据”走向“高度中央集权”的剧变史。 它完成了从上百个分散的 ECU 到几个核心“域”的集成&#x…

作者头像 李华
网站建设 2026/5/22 22:19:31

视觉感知十年演进

视觉感知&#xff08;Visual Perception&#xff09; 的十年&#xff08;2015–2025&#xff09;&#xff0c;是从“识别照片里的像素”向“重建实时三维物理世界”的跨越。 视觉感知是自动驾驶的“眼睛”。这十年间&#xff0c;视觉算法完成了从 2D 到 3D、从局部到全局、从“…

作者头像 李华