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
|
||||
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.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