Step 1:选一个框架吧!——Django还是Flask?
Django:功能超级全,属于“重型武器”。如果你想做个功能复杂、内容丰富的大型网站,比如有会员系统、支付功能、消息通知这些,Django简直就是一把瑞士军刀!而且Django有强大的ORM(对象关系映射),直接把数据库表和Python对象绑定,数据查询、插入轻松搞定! Flask:轻量、灵活,适合小而精的项目。它自带的东西少,但这其实是一种优势——适合开发简单的API或小型网站,代码量少,更容易控制。Flask更像是一个“骨架”,你可以根据需要自由地去扩展。
Step 2:安装Flask
pip
来安装Flask:pip install Flask
Step 3:Hello, Flask! 用代码写“Hello World”
from flask import Flask
app = Flask(__name__) # 初始化Flask应用
@app.route('/')
def hello():
return "Hello, World!" # 这是网站的首页内容
if __name__ == '__main__':
app.run(debug=True) # 启动服务,debug模式方便调试
app = Flask(__name__)
:这里初始化了一个Flask应用实例,Flask的__name__
参数主要是为了告诉Flask文件的名称,便于定位资源和模块。@app.route('/')
:这是Flask的“路由”,它定义了访问路径,这里我们设置的是网站的“/”路径,也就是主页。app.run(debug=True)
:启动服务器,debug=True
可以让服务器在检测到代码变化时自动重启,方便开发时调试。
http://127.0.0.1:5000
,你就能看到“Hello, World!”啦。是不是有点小激动😆?Step 4:加入一点HTML
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home():
return '''
<html>
<head><title>My Flask Site</title></head>
<body>
<h1>Hello from Flask!</h1>
<p>This is a simple website built with Flask.</p>
</body>
</html>
'''
if __name__ == '__main__':
app.run(debug=True)
Step 5:分离HTML,使用模板引擎
templates
,然后在里面写一个HTML文件index.html
:<!-- 文件路径:templates/index.html -->
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>My Flask Site</title>
</head>
<body>
<h1>Hello from {{ name }}!</h1>
<p>This site is powered by Flask and Jinja2.</p>
</body>
</html>
{{ name }}
是Jinja2的变量占位符,意思是会用Python代码里传过来的变量来替换。render_template
来加载HTML模板:from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home():
return render_template('index.html', name="Flask")
if __name__ == '__main__':
app.run(debug=True)
{{ name }}
会被替换成“Flask”。Step 6:加入表单和用户交互
1. 修改HTML
index.html
里加入一个表单,让用户可以输入名字:<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Greet Me</title>
</head>
<body>
<h1>Hi, {{ name }}!</h1>
<form method="POST" action="/greet">
<label for="name">Enter your name:</label>
<input type="text" id="name" name="name">
<button type="submit">Submit</button>
</form>
</body>
</html>
2. 处理用户输入
/greet
路由,接收POST请求,并处理用户提交的数据。from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/')
def home():
return render_template('index.html', name="Guest") # 默认显示Guest
@app.route('/greet', methods=['POST'])
def greet():
name = request.form.get('name') # 获取表单里的name字段
return render_template('index.html', name=name)
if __name__ == '__main__':
app.run(debug=True)
request.form.get('name')
:从表单数据里获取用户输入的名字。name=name
:传递变量到模板,让HTML页面显示用户输入的名字。
Step 7:部署到生产环境
pip install gunicorn # 安装Gunicorn
gunicorn -w 4 -b 0.0.0.0:8000 app:app
-w 4
表示使用4个工作进程,这样可以提高并发处理能力。-b 0.0.0.0:8000
表示绑定IP和端口,这样其他设备也能访问了。
对编程、职场感兴趣的同学,大家可以联系我微信:golang404,拉你进入“程序员交流群”。
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》。