Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2a860d2

Browse files
author
yitian
committed
添加了flask-sample,演示了flask的基本使用方法。
1 parent 226babe commit 2a860d2

22 files changed

Lines changed: 20753 additions & 1 deletion

‎README.md‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,9 @@
77

88
- basic 。 基础练习。
99
- sql 。数据库练习
10-
10+
11+
## flask-sample
12+
13+
添加了flask的简单例子,演示了基本使用方法。
14+
15+
![运行截图](flask-sample/flask-sample.PNG)

‎flask-sample/.gitignore‎

Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
# Created by .ignore support plugin (hsz.mobi)
2+
### JetBrains template
3+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
4+
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
5+
6+
# User-specific stuff:
7+
.idea/**/workspace.xml
8+
.idea/**/tasks.xml
9+
.idea/dictionaries
10+
11+
# Sensitive or high-churn files:
12+
.idea/**/dataSources/
13+
.idea/**/dataSources.ids
14+
.idea/**/dataSources.xml
15+
.idea/**/dataSources.local.xml
16+
.idea/**/sqlDataSources.xml
17+
.idea/**/dynamic.xml
18+
.idea/**/uiDesigner.xml
19+
20+
# Gradle:
21+
.idea/**/gradle.xml
22+
.idea/**/libraries
23+
24+
# Mongo Explorer plugin:
25+
.idea/**/mongoSettings.xml
26+
27+
## File-based project format:
28+
*.iws
29+
30+
## Plugin-specific files:
31+
32+
# IntelliJ
33+
/out/
34+
35+
# mpeltonen/sbt-idea plugin
36+
.idea_modules/
37+
38+
# JIRA plugin
39+
atlassian-ide-plugin.xml
40+
41+
# Crashlytics plugin (for Android Studio and IntelliJ)
42+
com_crashlytics_export_strings.xml
43+
crashlytics.properties
44+
crashlytics-build.properties
45+
fabric.properties
46+
### Python template
47+
# Byte-compiled / optimized / DLL files
48+
__pycache__/
49+
*.py[cod]
50+
*$py.class
51+
52+
# C extensions
53+
*.so
54+
55+
# Distribution / packaging
56+
.Python
57+
env/
58+
build/
59+
develop-eggs/
60+
dist/
61+
downloads/
62+
eggs/
63+
.eggs/
64+
lib/
65+
lib64/
66+
parts/
67+
sdist/
68+
var/
69+
wheels/
70+
*.egg-info/
71+
.installed.cfg
72+
*.egg
73+
74+
# PyInstaller
75+
# Usually these files are written by a python script from a template
76+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
77+
*.manifest
78+
*.spec
79+
80+
# Installer logs
81+
pip-log.txt
82+
pip-delete-this-directory.txt
83+
84+
# Unit test / coverage reports
85+
htmlcov/
86+
.tox/
87+
.coverage
88+
.coverage.*
89+
.cache
90+
nosetests.xml
91+
coverage.xml
92+
*,cover
93+
.hypothesis/
94+
95+
# Translations
96+
*.mo
97+
*.pot
98+
99+
# Django stuff:
100+
*.log
101+
local_settings.py
102+
103+
# Flask stuff:
104+
instance/
105+
.webassets-cache
106+
107+
# Scrapy stuff:
108+
.scrapy
109+
110+
# Sphinx documentation
111+
docs/_build/
112+
113+
# PyBuilder
114+
target/
115+
116+
# Jupyter Notebook
117+
.ipynb_checkpoints
118+
119+
# pyenv
120+
.python-version
121+
122+
# celery beat schedule file
123+
celerybeat-schedule
124+
125+
# SageMath parsed files
126+
*.sage.py
127+
128+
# dotenv
129+
.env
130+
131+
# virtualenv
132+
.venv
133+
venv/
134+
ENV/
135+
136+
# Spyder project settings
137+
.spyderproject
138+
139+
# Rope project settings
140+
.ropeproject
141+
### Eclipse template
142+
143+
.metadata
144+
bin/
145+
tmp/
146+
*.tmp
147+
*.bak
148+
*.swp
149+
*~.nib
150+
local.properties
151+
.settings/
152+
.loadpath
153+
.recommenders
154+
155+
# Eclipse Core
156+
.project
157+
158+
# External tool builders
159+
.externalToolBuilders/
160+
161+
# Locally stored "Eclipse launch configurations"
162+
*.launch
163+
164+
# PyDev specific (Python IDE for Eclipse)
165+
*.pydevproject
166+
167+
# CDT-specific (C/C++ Development Tooling)
168+
.cproject
169+
170+
# JDT-specific (Eclipse Java Development Tools)
171+
.classpath
172+
173+
# Java annotation processor (APT)
174+
.factorypath
175+
176+
# PDT-specific (PHP Development Tools)
177+
.buildpath
178+
179+
# sbteclipse plugin
180+
.target
181+
182+
# Tern plugin
183+
.tern-project
184+
185+
# TeXlipse plugin
186+
.texlipse
187+
188+
# STS (Spring Tool Suite)
189+
.springBeans
190+
191+
# Code Recommenders
192+
.recommenders/
193+
194+
# Scala IDE specific (Scala & Java development for Eclipse)
195+
.cache-main
196+
.scala_dependencies
197+
.worksheet
198+
### Example user template template
199+
### Example user template
200+
201+
# IntelliJ project files
202+
.idea
203+
*.iml
204+
out
205+
gen

‎flask-sample/flask-sample.PNG‎

28.8 KB
Loading[フレーム]
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
from werkzeug.utils import secure_filename
2+
from flask import *
3+
4+
app = Flask(__name__)
5+
app.config['DEBUG'] = True
6+
app.config['SECRET_KEY'] = '加密Session所需的密钥'
7+
8+
9+
@app.route('/')
10+
def index():
11+
return render_template('index.html')
12+
13+
14+
@app.route('/greet/<name>')
15+
def greet(name=None):
16+
return render_template('greet.html', name=name)
17+
18+
19+
@app.route('/greet')
20+
def greet2():
21+
name = request.args['name']
22+
return render_template('greet.html', name=name)
23+
24+
25+
@app.errorhandler(404)
26+
def page_not_found(error):
27+
return render_template('404.html')
28+
29+
30+
@app.route('/form', methods=['get'])
31+
def get_form():
32+
return render_template('form.html')
33+
34+
35+
@app.route('/form', methods=['post'])
36+
def submit_form():
37+
form = request.form
38+
file = request.files['file']
39+
if file:
40+
app.logger.debug(f'filename:{file.filename}')
41+
app.logger.debug(f'secure_filename:{secure_filename(file.filename)}')
42+
file.save(f'uploaded_files/{file.filename}')
43+
44+
return render_template('form-result.html', data=form)
45+
46+
47+
@app.route('/redirect_to_index')
48+
def redirect_to_index():
49+
return redirect(url_for('index'))
50+
51+
52+
@app.route('/get_request_data')
53+
def get_request_data():
54+
data = request.values
55+
return render_template('form-result.html', data=data)
56+
57+
58+
@app.route('/add_cookie')
59+
def add_cookie():
60+
return render_template('add-cookie.html')
61+
62+
63+
@app.route('/show_cookies', methods=['post', 'get'])
64+
def show_cookies():
65+
name = request.values.get('cookie_name')
66+
value = request.values.get('cookie_value')
67+
if name is None:
68+
name = ''
69+
if value is None:
70+
value = ''
71+
72+
cookies = request.cookies
73+
template = render_template('show-cookies.html', cookies=cookies)
74+
resp = make_response(template)
75+
resp.set_cookie(name, value)
76+
return resp
77+
78+
79+
@app.route('/files')
80+
def get_uploaded_file():
81+
filename = request.args['filename']
82+
return send_file(filename)
83+
84+
85+
def before_request():
86+
import glob
87+
files = glob.glob('uploaded_files/*')
88+
flist = []
89+
for f in files:
90+
flist.append(f)
91+
session['files'] = flist
92+
93+
94+
if __name__ == '__main__':
95+
app.before_request(before_request)
96+
app.run()

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /