如何用Python搭建一个网站 📅 发布时间:2026/7/11 17:12:36 👁️ 浏览次数: 用 Python 搭建一个网站有多种路径2025–2026 年的主流选择已经非常清晰。目前2026 年初最常见的三个起点是目标 / 场景2025–2026 最推荐框架学习曲线启动速度性能排名典型公司/项目类型推荐指数 (2026)传统完整网站有后台、用户系统、CMS、管理面板Django中等最快中等电商、管理后台、内容平台、SaaS★★★★★现代高性能 API 前后端分离React/Vue/小程序/H5FastAPI较低非常快最快AI 服务、微服务、移动后端、数据接口★★★★★极简原型、个人小站、学习 Web 基础、非常灵活控制Flask最低快中上小工具、内部服务、教学项目★★★★2026 年快速选型决策树问自己三个问题按顺序你是否需要开箱即用的用户认证、权限、Admin 后台、ORM、表单等一大堆功能→ 是 → 选Django最省事你的主要目标是构建高性能 RESTful/GraphQL/WebSocket API并且打算搭配现代前端React/Vue/Svelte/Next.js 等→ 是 → 选FastAPI目前最火、最现代你想自己掌控一切、写最少的 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.pyfrom django.dbimportmodels class Post(models.Model): titlemodels.CharField(max_length200)contentmodels.TextField()created_atmodels.DateTimeField(auto_now_addTrue)def __str__(self):returnself.title# blog/views.pyfrom django.shortcutsimportrender from .modelsimportPost def index(request): postsPost.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,nameindex),]# 创建 templates/blog/index.html!DOCTYPE htmlhtmlheadtitle我的博客/title/headbodyh1最新文章/h1ul{%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/ 有管理后台。路径二FastAPI2026 年最推荐的现代 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_URLsqlite:///./blog.dbenginecreate_engine(DATABASE_URL)SessionLocalsessionmaker(autocommitFalse,autoflushFalse,bindengine)Basedeclarative_base()class Post(Base): __tablename__postsidColumn(Integer,primary_keyTrue,indexTrue)titleColumn(String,indexTrue)contentColumn(String)created_atColumn(DateTime,defaultdatetime.utcnow)Base.metadata.create_all(bindengine)# Pydantic 模型class PostCreate(BaseModel): title: str content: str class PostOut(PostCreate): id: int created_at: datetime class Config: from_attributesTrue appFastAPI(title我的博客 API)# 依赖def get_db(): dbSessionLocal()try: yield db finally: db.close()app.post(/posts/,response_modelPostOut)def create_post(post: PostCreate, db: SessionDepends(get_db)): db_postPost(**post.model_dump())db.add(db_post)db.commit()db.refresh(db_post)returndb_post app.get(/posts/)def read_posts(db: SessionDepends(get_db)):returndb.query(Post).all()if__name____main__:uvicorn.run(app,host0.0.0.0,port8000)启动python main.py或uvicorn 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 appFlask(__name__)app.config[SQLALCHEMY_DATABASE_URI]sqlite:///blog.dbapp.config[SQLALCHEMY_TRACK_MODIFICATIONS]False dbSQLAlchemy(app)class Post(db.Model):iddb.Column(db.Integer,primary_keyTrue)titledb.Column(db.String(200),nullableFalse)contentdb.Column(db.Text,nullableFalse)created_atdb.Column(db.DateTime,defaultdatetime.utcnow)with app.app_context(): db.create_all()app.route(/)def index(): postsPost.query.all()returnrender_template(index.html,postsposts)app.route(/create,methods[GET,POST])def create():ifrequest.methodPOST:titlerequest.form[title]contentrequest.form[content]postPost(titletitle,contentcontent)db.session.add(post)db.session.commit()returnredirect(url_for(index))returnrender_template(create.html)if__name____main__:app.run(debugTrue)创建templates/index.html和templates/create.html类似上面 Django 的模板。启动python app.py总结建议2026 年视角第一次写网站→ Flask最容易理解 HTTP、路由、模板、表单想快速出完整产品带登录、权限、后台 → Django主要做 API、前后端分离、微服务、AI 接口、追求性能与现代感 →FastAPI目前增长最快、社区最活跃你目前的目标是哪一种个人博客 / 展示站前后端分离的现代 Web AppRESTful API 或 AI 服务接口带管理后台的企业级系统告诉我你的具体需求功能、技术栈偏好、是否要数据库等我可以给你更精确的下一步代码 目录结构 部署建议。
Java SE 面向对象 Java SE 面向对象(OOP)核心知识点详解 (从零基础到面试/项目常用级别 2026 年视角 清晰 对比 代码 常见误区) Java 是纯面向对象语言(几乎一切皆对象),它的面向对象特性比 C 更纯粹、更严… 2026/7/7 8:07:42
Comsol金属SRR Anapole完全教学 Comsol金属SRR Anapole完全教学。 COMSOL里玩Anapole现象就像在微波炉里观察奶油融化——看起来玄乎,上手其实不难。今天咱们用金属SRR(开口谐振环)结构来实现这个特殊电磁响应,重点在于如何通过参数化建模精准捕捉非辐射特性。 … 2026/7/11 8:03:14
校招中的“熟悉linux操作系统”一般是指达到什么程度? 校招中简历或 JD 上写的“熟悉 Linux 操作系统”,实际考察的门槛和期望值因公司、岗位、部门而异,但整体可以分成几个清晰的层级(从低到高)。 大多数公司(尤其是互联网大厂、后端/中间件/云原生/嵌入式相关岗位&#… 2026/7/10 14:54:17
如何5分钟搞定Windows和Office永久激活:高效智能的KMS解决方案 如何5分钟搞定Windows和Office永久激活:高效智能的KMS解决方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统和Office办公软件的激活问题而烦恼吗?KM… 2026/7/11 17:06:33
STM32与BQ25887实现锂电池主动均衡方案详解 1. 项目背景与核心需求解析在便携式电子设备设计中,两节串联锂电池(2S)系统因其更高的能量密度和输出电压范围(7.4V标称)被广泛应用。但串联电池组的固有缺陷是单体电池的不一致性——包括容量、内阻和自放电率的差异。… 2026/7/11 17:06:33
Hello-CTF逆向工程指南:如何破解你的第一个二进制程序 Hello-CTF逆向工程指南:如何破解你的第一个二进制程序 【免费下载链接】Hello-CTF 【Hello CTF】题目配套,免费开源的CTF入门教程,针对0基础新手编写,同时兼顾信息差的填补,对各阶段的CTFer都友好的开源教程࿰… 2026/7/11 17:06:33
ADP5350与STM32L4A6RG的低功耗嵌入式电源管理方案 1. 为什么选择ADP5350与STM32L4A6RG组合?在嵌入式系统设计中,电源管理往往是最容易被忽视却至关重要的环节。ADP5350作为ADI公司推出的高集成度PMIC(电源管理集成电路),其核心价值在于将传统设计中分散的充电管理、电压… 2026/7/11 17:04:32
MOSS-Transcribe-Diarize核心技术解析:Whisper+Qwen3架构的完美融合 MOSS-Transcribe-Diarize核心技术解析:WhisperQwen3架构的完美融合 【免费下载链接】MOSS-Transcribe-Diarize MOSS-Transcribe-Diarize 是 OpenMOSS 团队推出的开源语音转写与说话人分离模型。它对长音频、多说话人音频进行统一建模,支持自动语音识别、… 2026/7/11 17:04:32
CANN/ops-nn RMS动态量化归一化 cann_ops_nn.rms_norm_dynamic_quant 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 产品支持情况 Ascend 950PR/Ascend 950DT:不支持Atlas A3 训练系列… 2026/7/11 17:02:31
5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 [特殊字符] 5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 🎬 【免费下载链接】zimuku_for_kodi Kodi 插件,用于从「字幕库」网站下载字幕 项目地址: https://gitcode.com/gh_mirrors/zi/zimuku_for_kodi 还记得那个深夜吗?你刚下载… 2026/7/11 0:00:11
工业信号干扰处理与FOD4216光耦应用实战 1. 工业环境中的信号干扰挑战在工业自动化领域,信号采集的准确性直接关系到整个控制系统的可靠性。典型的工业现场充斥着各种干扰源:大功率电机启停产生的电磁干扰、变频器工作产生的高频噪声、继电器触点火花放电,以及长距离传输引入的共模干… 2026/7/11 0:00:11
OpenHarmony 完整项目工程整合规范 + 模块化分层架构(API23+ 标准企业级结构) 摘要前面系列教程覆盖了 ArkUI 组件、路由、生命周期、本地存储、网络请求、Ability 底层全套基础能力,本篇统一梳理标准工程目录分层、模块化拆分、代码复用规范、全局工具统一管理、项目打包权限配置、常见工程报错统一解决方案,形成可直接用于课程设计… 2026/7/11 0:00:11
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/11 14:53:30
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/11 12:30:52
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/11 15:29:59