flask
This commit is contained in:
@@ -0,0 +1,32 @@
|
|||||||
|
from flask import Flask
|
||||||
|
from flask import render_template
|
||||||
|
from flask import request
|
||||||
|
from flask import make_response
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
@app.route('/') # 路由 映射到根目录
|
||||||
|
def hello_world():
|
||||||
|
return 'Hello, World!'
|
||||||
|
|
||||||
|
@app.route('/greet/<name>') # 视图,有传参
|
||||||
|
def greet(name):
|
||||||
|
return f'Hello, {name}!'
|
||||||
|
|
||||||
|
@app.route('/submit', methods=['POST']) # 请求对象,定义了方法
|
||||||
|
def submit():
|
||||||
|
username = request.form.get('username')
|
||||||
|
return f'Hello, {username}!'
|
||||||
|
|
||||||
|
@app.route('/custom_response') # 响应对象
|
||||||
|
def custom_response():
|
||||||
|
response = make_response('This is a custom response!') # 响应体
|
||||||
|
response.headers['X-Custom-Header'] = 'Value' # 响应头
|
||||||
|
return response
|
||||||
|
|
||||||
|
@app.route('/hello/<name>') # 使用模板渲染
|
||||||
|
def hello(name):
|
||||||
|
return render_template('hello.html', name=name)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
app.run(debug=True)
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
from flask import Flask, render_template
|
||||||
|
from flask_wtf import FlaskForm
|
||||||
|
from wtforms import StringField, SubmitField
|
||||||
|
from wtforms.validators import DataRequired, Email
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
app.secret_key = 'your-secret-key' # 开发用,生产请用环境变量
|
||||||
|
|
||||||
|
class MyForm(FlaskForm):
|
||||||
|
name = StringField('Name', validators=[DataRequired()])
|
||||||
|
email = StringField('Email', validators=[DataRequired(), Email()]) # ✅ 用 StringField + Email()
|
||||||
|
submit = SubmitField('Submit')
|
||||||
|
|
||||||
|
@app.route('/', methods=['GET', 'POST'])
|
||||||
|
def form():
|
||||||
|
form = MyForm()
|
||||||
|
if form.validate_on_submit():
|
||||||
|
name = form.name.data
|
||||||
|
email = form.email.data
|
||||||
|
return f'Name: {name}, Email: {email}'
|
||||||
|
return render_template('wtf_form.html', form=form)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
app.run(debug=True)
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"metadata": {},
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"source": "## 安装flask",
|
||||||
|
"id": "d08d0aec541e30fb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"id": "initial_id",
|
||||||
|
"metadata": {
|
||||||
|
"collapsed": true,
|
||||||
|
"ExecuteTime": {
|
||||||
|
"end_time": "2025-08-29T01:31:15.189520Z",
|
||||||
|
"start_time": "2025-08-29T01:30:52.483942Z"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"source": "pip install flask",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"Collecting flask\r\n",
|
||||||
|
" Downloading flask-3.1.2-py3-none-any.whl.metadata (3.2 kB)\r\n",
|
||||||
|
"Collecting blinker>=1.9.0 (from flask)\r\n",
|
||||||
|
" Downloading blinker-1.9.0-py3-none-any.whl.metadata (1.6 kB)\r\n",
|
||||||
|
"Requirement already satisfied: click>=8.1.3 in /opt/conda/lib/python3.11/site-packages (from flask) (8.1.7)\r\n",
|
||||||
|
"Collecting itsdangerous>=2.2.0 (from flask)\r\n",
|
||||||
|
" Downloading itsdangerous-2.2.0-py3-none-any.whl.metadata (1.9 kB)\r\n",
|
||||||
|
"Requirement already satisfied: jinja2>=3.1.2 in /opt/conda/lib/python3.11/site-packages (from flask) (3.1.2)\r\n",
|
||||||
|
"Requirement already satisfied: markupsafe>=2.1.1 in /opt/conda/lib/python3.11/site-packages (from flask) (2.1.3)\r\n",
|
||||||
|
"Collecting werkzeug>=3.1.0 (from flask)\r\n",
|
||||||
|
" Downloading werkzeug-3.1.3-py3-none-any.whl.metadata (3.7 kB)\r\n",
|
||||||
|
"Downloading flask-3.1.2-py3-none-any.whl (103 kB)\r\n",
|
||||||
|
"\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m103.3/103.3 kB\u001B[0m \u001B[31m421.7 kB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m00:01\u001B[0m00:01\u001B[0m\r\n",
|
||||||
|
"\u001B[?25hDownloading blinker-1.9.0-py3-none-any.whl (8.5 kB)\r\n",
|
||||||
|
"Downloading itsdangerous-2.2.0-py3-none-any.whl (16 kB)\r\n",
|
||||||
|
"Downloading werkzeug-3.1.3-py3-none-any.whl (224 kB)\r\n",
|
||||||
|
"\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m224.5/224.5 kB\u001B[0m \u001B[31m1.1 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0ma \u001B[36m0:00:01\u001B[0m\r\n",
|
||||||
|
"\u001B[?25hInstalling collected packages: werkzeug, itsdangerous, blinker, flask\r\n",
|
||||||
|
" Attempting uninstall: blinker\r\n",
|
||||||
|
" Found existing installation: blinker 1.6.3\r\n",
|
||||||
|
" Uninstalling blinker-1.6.3:\r\n",
|
||||||
|
" Successfully uninstalled blinker-1.6.3\r\n",
|
||||||
|
"Successfully installed blinker-1.9.0 flask-3.1.2 itsdangerous-2.2.0 werkzeug-3.1.3\r\n",
|
||||||
|
"Note: you may need to restart the kernel to use updated packages.\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"execution_count": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata": {},
|
||||||
|
"cell_type": "code",
|
||||||
|
"outputs": [],
|
||||||
|
"execution_count": null,
|
||||||
|
"source": "",
|
||||||
|
"id": "f9af5a802cbd2abe"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": "Python 3",
|
||||||
|
"language": "python",
|
||||||
|
"name": "python3"
|
||||||
|
},
|
||||||
|
"language_info": {
|
||||||
|
"codemirror_mode": {
|
||||||
|
"name": "ipython",
|
||||||
|
"version": 2
|
||||||
|
},
|
||||||
|
"file_extension": ".py",
|
||||||
|
"mimetype": "text/x-python",
|
||||||
|
"name": "python",
|
||||||
|
"nbconvert_exporter": "python",
|
||||||
|
"pygments_lexer": "ipython2",
|
||||||
|
"version": "2.7.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 5
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Form Example</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form action="/submit" method="post">
|
||||||
|
<label for="name">Name:</label>
|
||||||
|
<input type="text" id="name" name="name">
|
||||||
|
<br>
|
||||||
|
<label for="email">Email:</label>
|
||||||
|
<input type="email" id="email" name="email">
|
||||||
|
<br>
|
||||||
|
<input type="submit" value="Submit">
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Hello</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Hello, {{ name }}!</h1>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Upload File</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form action="/upload" method="post" enctype="multipart/form-data"> <!--enctype指定表单类型,支持文件上传 -->
|
||||||
|
<label for="file">File:</label>
|
||||||
|
<input type="file" id="file" name="file">
|
||||||
|
<br>
|
||||||
|
<input type="submit" value="Upload">
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Form Example</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form method="post">
|
||||||
|
{{ form.hidden_tag() }}
|
||||||
|
<div>
|
||||||
|
{{ form.name.label }}<br>
|
||||||
|
{{ form.name(size=32) }}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{{ form.email.label }}<br>
|
||||||
|
{{ form.email(size=32) }}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
{{ form.submit() }}
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import os,sys #导入模块
|
||||||
|
def add_prefix_files(): #定义函数名称
|
||||||
|
old_names = os.listdir( path ) #取路径下的文件名,生成列表
|
||||||
|
for old_name in old_names: #遍历列表下的文件名
|
||||||
|
# if old_name!= sys.argv[0]: #代码本身文件路径,防止脚本文件放在path路径下时,被一起重命名
|
||||||
|
if old_name.endswith('.mp4'): #当文件名以.txt后缀结尾时
|
||||||
|
old_name1=old_name.split(".")[0]
|
||||||
|
number = old_name1[-1]
|
||||||
|
name = old_name1[:1]
|
||||||
|
new_name =number+" "+name+".mp4"
|
||||||
|
os.rename(os.path.join(path,old_name),os.path.join(path,new_name)) #重命名文件
|
||||||
|
print (old_name,"has been renamed successfully! New name is: ",new_name) #输出提示
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
path = f'D:\Program File data\mp4\半音阶口琴' #运行程序前,记得修改主文件夹路径!
|
||||||
|
add_prefix_files() #调用定义的函数,注意名称与定义的函数名一致
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
from flask import Flask, request, redirect, url_for
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
app.secret_key = 'your_secret_key'
|
||||||
|
|
||||||
|
@app.route('/upload', methods=['POST'])
|
||||||
|
def upload():
|
||||||
|
file = request.files.get('file')
|
||||||
|
if file:
|
||||||
|
filename = file.filename
|
||||||
|
file.save(f'uploads/{filename}')
|
||||||
|
return f'File uploaded successfully: {filename}'
|
||||||
|
return 'No file uploaded'
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
app.run(debug=True)
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"metadata": {},
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"source": "### 发送文件",
|
||||||
|
"id": "259126b0b53fdd9f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"id": "initial_id",
|
||||||
|
"metadata": {
|
||||||
|
"collapsed": true,
|
||||||
|
"ExecuteTime": {
|
||||||
|
"end_time": "2025-09-02T09:10:07.287763Z",
|
||||||
|
"start_time": "2025-09-02T09:10:07.276787Z"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"source": [
|
||||||
|
"import requests\n",
|
||||||
|
"\n",
|
||||||
|
"url = 'http://127.0.0.1:5000/upload' # 你的 Flask 服务地址\n",
|
||||||
|
"file_path = 'D:\\Idea Project\\python\\demo.py' # 要上传的文件路径\n",
|
||||||
|
"\n",
|
||||||
|
"with open(file_path, 'rb') as f:\n",
|
||||||
|
" files = {'file': f}\n",
|
||||||
|
" response = requests.post(url, files=files)\n",
|
||||||
|
"\n",
|
||||||
|
"print(response.text)"
|
||||||
|
],
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"File uploaded successfully: demo.py\n"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "stderr",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"<>:4: SyntaxWarning: invalid escape sequence '\\I'\n",
|
||||||
|
"<>:4: SyntaxWarning: invalid escape sequence '\\I'\n",
|
||||||
|
"C:\\Users\\zy187\\AppData\\Local\\Temp\\ipykernel_3844\\645906349.py:4: SyntaxWarning: invalid escape sequence '\\I'\n",
|
||||||
|
" file_path = 'D:\\Idea Project\\python\\demo.py' # 要上传的文件路径\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"execution_count": 5
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": "Python 3",
|
||||||
|
"language": "python",
|
||||||
|
"name": "python3"
|
||||||
|
},
|
||||||
|
"language_info": {
|
||||||
|
"codemirror_mode": {
|
||||||
|
"name": "ipython",
|
||||||
|
"version": 2
|
||||||
|
},
|
||||||
|
"file_extension": ".py",
|
||||||
|
"mimetype": "text/x-python",
|
||||||
|
"name": "python",
|
||||||
|
"nbconvert_exporter": "python",
|
||||||
|
"pygments_lexer": "ipython2",
|
||||||
|
"version": "2.7.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 5
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
from flask import Flask,render_template,request
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
@app.route('/')
|
||||||
|
def form(): # 展示表格
|
||||||
|
return render_template('form.html')
|
||||||
|
|
||||||
|
@app.route('/submit',methods=['POST'])
|
||||||
|
def submit(): #提交表格
|
||||||
|
name = request.form.get('name')
|
||||||
|
email = request.form.get('email')
|
||||||
|
return f'Name:{name},Email:{email}'
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
app.run(debug=True)
|
||||||
@@ -2,7 +2,7 @@ from selenium.webdriver import Chrome, Keys
|
|||||||
from selenium.webdriver.common.by import By
|
from selenium.webdriver.common.by import By
|
||||||
import time
|
import time
|
||||||
|
|
||||||
chrom_dirverpath = 'C:\Users\zy187\IdeaProjects\python\venv\Scripts\chromedriver.exe'
|
chrom_dirverpath = r'C:\Users\zy187\IdeaProjects\python\venv\Scripts\chromedriver.exe'
|
||||||
web = Chrome(chromedriver_path=chrom_dirverpath)
|
web = Chrome(chromedriver_path=chrom_dirverpath)
|
||||||
|
|
||||||
# web.get('http://lagou.com')
|
# web.get('http://lagou.com')
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
aiofiles==24.1.0
|
||||||
|
aiohttp==3.12.15
|
||||||
|
beautifulsoup4==4.13.5
|
||||||
|
contractions==0.1.73
|
||||||
|
itemadapter==0.12.1
|
||||||
|
lxml==6.0.1
|
||||||
|
nltk==3.9.1
|
||||||
|
numpy==2.3.2
|
||||||
|
pyecharts==2.0.8
|
||||||
|
pymongo==4.14.1
|
||||||
|
pymysql==1.1.2
|
||||||
|
pyspark==4.0.0
|
||||||
|
pytest==8.4.1
|
||||||
|
redis==6.4.0
|
||||||
|
Requests==2.32.5
|
||||||
|
selenium==4.35.0
|
||||||
|
self==2020.12.3
|
||||||
|
setuptools==78.1.1
|
||||||
|
six==1.17.0
|
||||||
|
spacy==3.8.7
|
||||||
|
Twisted==25.5.0
|
||||||
|
w3lib==2.3.1
|
||||||
Reference in New Issue
Block a user