您现在的位置是:知识 >>正文

python搭建web网站

知识74人已围观

简介用Python建网站,最省事的起点是Flask。别被Django的名气吓住,Flask给你的是最少的骨架,剩下的自己拼。我第一个上线的项目就是个Flask写的博客,代码不到200行,跑在一台1核1G的 ...

用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,半小时后你就有个能跑的网站了。

Tags:

相关文章

  • dnf地下城与生活钓鱼种类

    知识

    《dnf地下城与生活钓鱼种类》 钓鱼系统上线那会儿,我蹲在赫顿玛尔后街的河边整整一下午。旁边一个红眼老哥连竿上了三条鳗鱼,我这边浮标纹丝不动。后来才发现,他站在河湾拐角的深水区,我傻乎乎杵在浅滩——这 ...

    【知识】

    阅读更多
  • 人社部九江培训基地

    知识

    九江市八里湖新区的那片工地,我去了三次。第一次是去年秋天,围挡上还印着“人社部九江培训基地”的规划图,效果图里绿树成荫,教学楼玻璃幕墙反着光。第二次是今年三月,主体结构已经封顶,塔吊还在转,混凝土泵车 ...

    【知识】

    阅读更多
  • 高外链网址抢注

    知识

    凌晨三点,我蹲在电脑前刷新Whois数据库,眼睁睁看着一个三字母.com域名从"可注册"变成"已被抢注"。整个过程不到0.8秒——比我眨眼还快。这就是高外链网址抢注的日常,一场由算法、资本和运气共同参 ...

    【知识】

    阅读更多


友情链接