您现在的位置是:休闲 >>正文

用python做一个网站

休闲6人已围观

简介用Python做一个网站 用Python建站,最省事的路径是Flask。别急着碰Django,那玩意儿一套脚手架下来,光理解目录结构就得花半天。Flask核心就一个文件,十几行代码跑起来一个能用的站点 ...

用Python做一个网站

用Python建站,做站最省事的个网路径是Flask。别急着碰Django,做站那玩意儿一套脚手架下来,个网光理解目录结构就得花半天。做站Flask核心就一个文件,个网十几行代码跑起来一个能用的做站站点。

先装库:

pip install flask 

然后新建一个 app.py,个网写这些:

from flask import Flask,做站 render_template app = Flask(__name__) @app.route("/") def index(): return render_template("index.html") if __name__ == "__main__": app.run(debug=True) 

同目录下建一个 templates 文件夹,里面放 index.html。个网随便写点HTML,做站比如:

<!DOCTYPE html> <html> <head><title>我的个网站</title></head> <body> <h1>跑起来了</h1> <p>这是Flask渲染的页面</p> </body> </html> 

终端里 python app.py,浏览器打开 127.0.0.1:5000,做站页面就出来了。个网整个过程不超过三分钟。做站

但光有静态页面没意思。Flask真正的价值在于把数据塞进模板。改一下路由:

@app.route("/user/<name>") def user(name): return render_template("user.html", username=name) 

模板里用 { { username }} 接收。访问 /user/zhangsan,页面上就显示“zhangsan”。这种动态路由是Flask最顺手的地方,不用配置,装饰器一写就生效。

数据库这块,SQLite配SQLAlchemy够用了。装 flask-sqlalchemy,定义模型:

from flask_sqlalchemy import SQLAlchemy app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///site.db" db = SQLAlchemy(app) class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100)) content = db.Column(db.Text) 

然后在Python shell里 db.create_all(),表就建好了。增删改查都是Python对象操作,不用手写SQL。我自己的博客就是这么搭的,从写第一行代码到部署上线,一个周末搞定。

模板继承是另一个省事的设计。建一个 base.html,把导航栏、页脚这些公共部分放进去,用 { % block content %}{ % endblock %} 留口子。其他页面 { % extends "base.html" %},只写差异部分。改导航栏只需要动一个文件,不用满项目找。

静态文件——CSS、JS、图片——全扔进 static 文件夹。模板里用 { { url_for('static', filename='style.css') }} 引用。Flask自动处理路径,换域名也不用改代码。

部署比想象中简单。本地跑通了,找个VPS,装Python和Nginx。用Gunicorn当应用服务器:

gunicorn -w 4 app:app 

Nginx做反向代理,把80端口的请求转发到Gunicorn的8000端口。配置文件网上抄一份改改就行。域名解析过去,HTTPS用Certbot免费签,十分钟全部搞定。

有个坑得提一下:Flask自带的开发服务器不能用于生产环境。app.run() 只适合本地调试。上线必须换Gunicorn或uWSGI,否则并发一上来就崩。

还有人问要不要学Django。我的看法是:如果你要做内容管理系统、电商后台这种功能密集的项目,Django的admin和ORM确实省事。但如果你只是想做个个人站、小工具、API接口,Flask的轻量和灵活更合适。先跑通一个最小可用版本,比花两周研究框架源码实在得多。

最后说个细节。Flask的 debug=True 模式下,改完代码保存,浏览器刷新就生效,不用重启。这个反馈循环特别快,写起来很舒服。但上线前记得关掉,否则会暴露源码和堆栈信息。

一个能用的网站,核心就是路由、模板、数据库这三样。Flask把它们串得很自然。剩下的功能,遇到什么查什么,不用提前学一堆用不上的东西。

Tags:

相关文章

  • 缓解拥堵

    休闲

    早高峰的十字路口,车流像一条被卡住喉咙的巨蟒,每隔十几秒才艰难地向前蠕动半个车身。我骑着共享单车在缝隙间穿行,看见一位西装革履的男士摇下车窗,对着前面那辆闪着刹车灯的本田猛按喇叭——可那本田又能去哪儿 ...

    【休闲】

    阅读更多
  • 文圣拳网站

    休闲

    文圣拳网站上线那天,我盯着屏幕看了很久。首页没有花哨的轮播图,没有弹窗广告,只有一张黑白老照片——师父在院子里教徒弟推手,地上还积着昨夜的雪。这张照片是2003年拍的,那年我刚开始学拳,记得那天风特别 ...

    【休闲】

    阅读更多
  • 白帽黑客黑帽黑客和灰帽黑客的区别

    休闲

    2017年5月,WannaCry勒索病毒席卷全球,150个国家超过30万台电脑被锁。事后调查发现,一个叫Marcus Hutchins的22岁英国小伙通过注册一个随机域名,意外触发了病毒的"自杀开关" ...

    【休闲】

    阅读更多


友情链接