python搭建web网站
作者:综合 来源:探索 浏览: 【大 中 小】 发布时间:2026-10-17 06:21:33 评论数:
用Python建网站,搭建最省事的搭建起点是Flask。别被Django的搭建名气吓住,Flask给你的搭建是最少的骨架,剩下的搭建自己拼。我第一个上线的搭建项目就是个Flask写的博客,代码不到200行,搭建跑在一台1核1G的搭建云服务器上,撑了半年日活几百的搭建访问量。
先装环境。搭建打开终端,搭建敲 pip install flask。搭建完事。搭建不需要配置文件,搭建不需要项目生成器。搭建新建一个 app.py,写这几行:
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return '<h1>Hello</h1>' if __name__ == '__main__': app.run(debug=True) 运行 python app.py,浏览器打开 localhost:5000,页面出来了。就这么直接。Flask的路由用装饰器定义,一个函数对应一个URL,比翻配置文件舒服得多。
路由能带参数。@app.route('/user/<name>'),函数接收 name 变量,返回对应内容。URL里传什么,页面就显示什么。动态内容的基础就有了。
光返回字符串不够。真实网站要模板。Flask默认用Jinja2。在项目目录建个 templates 文件夹,放 index.html。模板里可以用 { { }} 插变量,{ % %} 写逻辑。比如循环渲染文章列表:
{ % for post in posts %} <div> <h2>{ { post.title }}</h2> <p>{ { post.body }}</p> </div> { % endfor %} 视图函数里用 render_template('index.html', posts=posts) 把数据传进去。前后端不分离,写起来快,适合中小型站点。
表单处理也简单。request.form['username'] 拿到POST数据。Flask内置了会话管理,session['user_id'] = 1 就能保持登录状态。密钥记得设一个随机字符串,别用默认值。
数据库这块,SQLite起步最合适。Python自带 sqlite3,不用额外装服务。建表、插入、查询,几行SQL搞定。数据量大了再换PostgreSQL或MySQL,Flask-SQLAlchemy能帮你平滑迁移。我那个博客后来文章过千,SQLite依然没掉链子。
部署别用 app.run(),那是开发服务器。生产环境上Gunicorn:gunicorn -w 4 app:app,起4个worker进程。前面挂Nginx做反向代理和静态文件服务。Nginx配置里把 /static/ 直接指向文件夹,Flask只处理动态请求。这套组合在1核1G机器上跑个人网站绰绰有余。
静态文件放 static 目录,CSS、JS、图片都扔进去。模板里用 url_for('static', filename='style.css') 生成路径,别硬编码。
有个坑得提:Flask默认单线程,并发请求会排队。Gunicorn多worker能解决,但要注意数据库连接池和文件锁。SQLite在并发写入时容易锁表,读多写少的场景没事,写频繁就得换数据库。
想加用户认证,Flask-Login帮你管session和用户加载。想要REST API,Flask-RESTful或直接返回 jsonify()。扩展生态够用,缺什么装什么,不绑架你的项目结构。
最后说句实在的:Flask不是玩具。Instagram早期用Django,Pinterest用Flask起步,Reddit部分服务也是Flask。框架轻不代表能力弱,关键看你怎么组织代码。把蓝图(Blueprint)用起来,按功能拆分模块,项目大了也不乱。
动手写比看教程管用。现在打开编辑器,敲下第一行 from flask import Flask,半小时后你就有个能跑的网站了。
