找回密码
 注册
查看: 13|回复: 4

pycharm调试flask自动启动程序的配置app.py程序

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2024-5-28 11:30:32 | 显示全部楼层 |阅读模式
首先引入项目找到右上角 test_flask >  Edit Configurations + T6 x* e6 h' t8 ]( @1 [
弹出对话框:  G+ k7 I* ^, V3 i6 J$ U$ w

2 Y: {3 H+ N( T+ d左上角的+号。选择python
, f* ^& y2 W6 |1 b( ]# v: L, _! T; ]) ]5 U/ }. a9 x4 T$ `
弹出对话框:* U1 e2 e9 M, e* S- v- S, t

. L# |7 T3 p) t. J/ T5 p修改Name 为项目名称:   test_flask
$ i- N! }6 h' Q) B, z9 w      configuration:   
( J) o% x3 R& A& m        第一个倒三角符号区,选择Module name      后面框中输入: flask
7 B# P. N+ O* O7 E              接下来设置Parameters   run -h 0.0.0.0 -p 8080
- W7 F( b1 ?( L" J$ M4 Q( B. z. Q
8 a5 W4 I; R6 P& L$ Z    第二个倒三角:  Environment 8 g6 i! _/ U/ G, ?# c1 y' F
           Environment variables:    后面的像test的文件的图标,点击配置,弹出对话框:
# @/ ~$ X" ]) b- g- p7 a7 m( V                            Name  写上FLASK_APP    value值 app.py   
9 k2 ^8 N0 f" s( w                             Name 写上 FLASK_ENV    value值 development      2 d$ J% x% w- Q# u
            点击ok保存即可,返回上级页面:- R5 @7 Q2 Y; x! }) r( ^1 \8 H
          Python interpreter 选择我们安装的python解释器
# l8 F9 h8 g: ?1 }$ g) x* J2 b: P
5 H# L# q4 J2 z! j3 x# |          为了防止后面访问出现问题  我们需要配置  Working directory   :  C:\Users\admin\Desktop\test_flask! x9 z( e8 s9 a! [; T
           勾选上下面两个对话框即可。  ' u3 U7 Z# [$ f5 X
  点击ok保存即可& a1 [* Q7 ]% d7 Q( N# M
$ ?. r- \2 F1 y& h* L$ p0 t, K1 j

; v6 r4 K. \9 R  P. V
, V: t$ [) p# A* g. G* C/ e( z0 l因程序调不到python的flask插件:3 M/ g+ N2 Q" ~
      配置如下:% b* T* N1 H6 u4 m
    点击左上角file选择settings  9 r1 O6 H; n. J
弹出对话框,选择Project: test_flask
0 Z2 P4 I, x& {% f; X! \       出现我们的env环境
2 K7 S5 \# h6 B' X     需要的包如下:
/ I' d. o6 G' d. Q. h& m     Click         7.0
, p- _2 y, U; s/ z     Flask        1.1.2
+ X3 [8 Z, {# }$ V6 x0 {( J     Jinjia2      2.11.2
6 Y3 _5 T5 r; w     MarkupSafe   2.0.0
2 [9 L; I$ _8 b* k# _     Werkzeug       1.0.06 @6 }- W4 \! B# f
     itsdangerous   1.1.0
  F- a9 G* |* c& i     pip                20.0.2
6 u  q& n/ f  B% T  i  d3 q     setuptools      45.2.0. Q6 p3 Q1 ~; h
    wheel            0.34.2' n1 v4 _  U5 w4 \8 _# v8 k0 l$ b" _' e

* j4 N9 d3 v. A9 Z* N7 Y& j. e& O( n以上插件是当前测试成功的环境变量需要的包。
% V' Y4 @+ z* V( G! Z" U  H测试:
( R* U# U2 R: d- f
: Z3 i! F" K" Dfrom flask import Flask) p+ j' l% m2 `9 J4 b" y
# 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容3 Y5 |. C) @' x& F: {% O0 j1 H
app = Flask(__name__)1 {/ y1 b2 E6 ]2 h% G

8 ]$ u( S3 E  B' Z% \#methods参数用于指定允许的请求格式$ B; d& ]  J4 \9 V( Y
#常规输入url的访问就是get方法
9 M& @  u. h: O3 M& B  x@app.route('/')
5 a6 r, F( I& q5 ^) v$ j$ j' Q! ]def Hello_World():
3 t5 f3 I0 M( \3 R7 Y% @     '''视图函数'''" R4 @& @9 N; I. A0 R  g8 P
     return 'Hello_World,sucesess'% r5 [0 e5 h& z2 L# _
#注意路由路径不要重名,映射的视图函数也不要重名
$ b- t; M& |" C' S, w7 j! }3 S9 K; u! P: ?. J
###v1.0之后的版本,不推荐的写法4 Z8 K/ @9 h/ m" |
# if __name__ == '__main__':  B% M0 E* c! R* s) n
#    app.run()
$ c0 {* c7 K2 q/ l4 z* F% A" D( D8 z. q; a% K
4 J3 j% r3 D, z3 N) G2 c
. e& ]  J* w0 C- ]9 S
python.exe -m flask run -h 0.0.0.0 -p 80# W+ H" i2 G7 p4 a
* Serving Flask app "app.py" (lazy loading)! `+ M0 _: L# I& u+ K0 m
* Environment: development" A1 S& J- G) j& m
* Debug mode: on
8 _' n" x# c+ s * Restarting with stat
* K+ C& s- O+ t( `, P# }! Q: W: g * Debugger is active!
: h0 \& \- K9 v9 q * Debugger PIN: 215-100-437
/ ^  r2 i" V) k! z! ~ * Running on http://0.0.0.0:80/ (Press CTRL+C to quit)+ W: Q) a, O: ?6 p, a
3 t' p: D# H3 ?7 c- ^6 F
! ]3 ~! n% Y9 Q. d0 }& U
$ V1 _' h: Q* C. [
! n0 t- I, S: D! A
浏览器访问结果:# ~9 Q: ^" h* S0 S+ [- i
) ~0 L+ O; e% e8 w* t5 k# T* K
http://127.0.0.1/
+ K2 W& V5 \* l- h' D" w8 g  f
. n& Z- E0 O) DHello_World,sucesess1 b9 s3 z: b: i! M
7 P& c3 O/ a& y# Z" L
测试正常。1 R  i- P) q# ^
5 t) ^, Q' B' M

3 Z& z' o$ k0 m3 k  ]( s, ?否则就报这个错误:
+ W' H$ x- D3 Cmodulenotfounderror: no module named 'app'
- W3 \' [$ X6 j$ R- X7 ?# O等报错。
! t9 p! `( R! L( r6 }$ y. {; `0 C( P: ?
成功之后,不配置
1 b7 ^7 D- n+ @ 我们需要配置  Working directory   :  C:\Users\admin\Desktop\test_flask0 A: j; E0 \4 }- e) r
           勾选上下面两个对话框即可。  
. \8 N$ |% H5 P# W& T+ ?7 h0 i1 h* u* i9 T
这个也可以成功了。是因为引入了该变量了。
! }5 X+ _6 Z# O& Y: j; r& P* I5 ?/ [  |% S

4 |; j  m8 s. G) R; _! Z# L5 M$ u2 N/ h- v6 u- H2 `4 n- J
; Z- J0 ^  V  y) ~

. A) f! W" J9 d

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-5-28 13:56:24 | 显示全部楼层
访问报错信息:
; y0 |/ F4 ^+ w$ z8 c7 kflask.cli.NoAppException$ c* ?6 P* K- p

% d/ n. I3 J& {, b% k* z0 ]flask.cli.NoAppException: Could not import "app".
* E. v) V  q8 g( gTraceback (most recent call last)
1 b. Y1 Z9 N  x( w$ |3 H, F* V# R" `; f. _3 D/ S8 |% K/ _2 u
    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 240, in locate_app
# O* u2 G3 ?- N' P! M
1 v7 `, f# X9 m2 e    __import__(module_name)
7 J# H, [8 n* ~' }- |/ S9 ^' \* z2 ^
    During handling of the above exception, another exception occurred:  o( V- w4 m, C7 t- d
    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 338, in __call__
0 U: Q( H3 [9 H0 H
% _, G+ o: `. z. ]" [    self._flush_bg_loading_exception()
. ^- ?. n" f% B" s0 a; Q" W4 @, E
    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 326, in _flush_bg_loading_exception& `8 z4 D0 U5 a
1 }2 W7 a9 [$ O7 K/ \& O2 a- S
    reraise(*exc_info)2 S# m! O" k% r  H

3 b8 ?& r" n3 ^: J    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\_compat.py", line 39, in reraise  y  D6 W4 I- y0 b, O' O7 ~: C3 K7 I
8 P9 r$ y0 d' g$ ]  P
    raise value
( E' H7 C( l% S! N1 y% A4 g! @
& S( C( A, a1 s8 i5 N9 r; l    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 314, in _load_app
9 b/ a! y! Q+ x" D3 s! A: e: B+ Z% N) Z6 O9 J/ Q
    self._load_unlocked()5 |; e( `. ^3 r  P' M
0 b; G% m+ ]1 P
    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 330, in _load_unlocked. k# [; m* A. s- \: x
- Y- k) O8 ^% f  ?% ^. t6 u! j
    self._app = rv = self.loader()
/ b+ r4 b' G3 ^9 ^6 [! g
) E0 w/ J& S$ v    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 388, in load_app
7 v# H- s- j- d" U8 Q$ a; ]  x( F& d0 u$ j
    app = locate_app(self, import_name, name)
2 {% t/ L3 Q  g5 M( R/ P( K" d
# k8 r; H/ B8 v    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 250, in locate_app& H. \: }' t  I, f
/ @' ]+ S) u! }! G, I
    raise NoAppException('Could not import "{name}".'.format(name=module_name))
, `- q8 ^- z( @7 o8 P8 J3 T% k! D6 J/ [  W* S% |. u
    flask.cli.NoAppException: Could not import "app".; Q/ W0 R; ?( V' v4 i) L9 {& q! T
# j: d0 B# v# O' `9 D& n/ V( [
The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error.
+ M% s0 X# I% G. O/ x7 j% [
' j- `" g3 T; wTo switch between the interactive traceback and the plaintext one, you can click on the "Traceback" headline. From the text traceback you can also create a paste of it. For code execution mouse-over the frame you want to debug and click on the console icon on the right side.9 j7 `7 n: O2 `# E

  A$ R) ~4 w& v5 n5 JYou can execute arbitrary Python code in the stack frames and there are some extra helpers available for introspection:
5 B' r" j) o- E) e/ x5 n
) I* n" P& N8 `* ^    dump() shows all variables in the frame
5 r3 ~7 H( a5 e6 K5 L" F1 r/ {: l    dump(obj) dumps all that's known about the object6 |8 N4 S' E% A. m5 d' @, l( e1 [# v
3 ^9 I; W! z& {7 `" @

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-5-28 13:57:16 | 显示全部楼层
C:\Users\admin\Desktop\test_flask\venv\Scripts\python.exe -m flask run -h 0.0.0.0 -p 8080
1 I$ Z0 w5 Q0 G# t5 A5 g" p * Serving Flask app "app.py" (lazy loading)! h( W5 _3 j( \) g6 B
* Environment: development& S8 t6 Y; A- B! q, h- x0 U
* Debug mode: on% z/ e3 e  a& H$ h
* Restarting with stat
3 c( K& G% y: H; E * Debugger is active!2 ~/ I$ g! f+ y
* Debugger PIN: 215-100-437
( v4 P! r8 D/ R9 u * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
: q! }% J: t# i6 \) l1 a127.0.0.1 - - [28/May/2024 13:56:09] "GET / HTTP/1.1" 500 -
7 c% u/ j0 {+ d/ W3 LTraceback (most recent call last):
: o* F0 O: M$ }3 }$ D  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 240, in locate_app
! q/ x. [9 ~3 i  H. |$ d    __import__(module_name)
2 B: H4 x: B2 T4 ?ModuleNotFoundError: No module named 'app'( S! b# u( T5 s7 L

& O" o3 N9 g2 {/ Z/ i$ f  M6 iDuring handling of the above exception, another exception occurred:+ S) s/ e7 H) Q

" L4 ]1 M9 X' p1 l) h9 M- t3 oTraceback (most recent call last):  h/ g7 |1 Q" D# i' J
  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 338, in __call__
$ h5 n3 G& r, Y    self._flush_bg_loading_exception()
8 i! q. N& i: {! v9 s6 E  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 326, in _flush_bg_loading_exception6 c3 o0 r* p: [+ r# Z% ^  ^( l( f
    reraise(*exc_info)
; E( G! n! N, {; S  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\_compat.py", line 39, in reraise8 L; A1 {2 M' ^# f$ P) m. H9 O
    raise value
- s. J% w5 Q5 r8 J! j3 ^0 i0 @! x  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 314, in _load_app
8 O. k/ [) _: s$ S: S    self._load_unlocked()
) U  W% w' d* M: y, t! W" V. T. V* I  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 330, in _load_unlocked' k9 p! W8 S0 m* W
    self._app = rv = self.loader()
! Z) @1 n' p/ f2 v1 J, {8 j0 V  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 388, in load_app
8 k! l2 g% x: D    app = locate_app(self, import_name, name)
0 {& `8 s' x& x: l$ z  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 250, in locate_app. s$ s3 N& j2 J# i: ?
    raise NoAppException('Could not import "{name}".'.format(name=module_name))' U. l9 D+ E7 y
flask.cli.NoAppException: Could not import "app".7 M0 G; L: _$ }& C, z
127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 -) D; }4 R" |" g& L: h+ ^: k" I6 _
127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=jquery.js HTTP/1.1" 200 -
2 b7 L# {9 l( w- _& C; o7 C127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 -
' f. R( [7 n1 J6 @5 o( A+ o127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -' T7 w, e, _5 }" u& j2 k( d* K
127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=ubuntu.ttf HTTP/1.1" 200 -1 p$ _4 w# u2 X" V" z
127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-5-28 14:02:17 | 显示全部楼层
修改 Run/Debug Configuration  配置$ |3 R" e( j7 H9 ?

+ d4 |7 `) O$ S7 q# f    修改Working directory:   c:\Users\admin\Desktop\test_flask
& {+ E1 J4 e' I/ K     勾选Add content roots to ...  两个都勾上。
. k; |4 a! ~% ]5 h. [: n% e4 m% C4 m
; {  }4 z* Q/ x保存配置。点击ok和Apply   应用7 ^- h& ]! y( b: ^, x

& a/ h& h. A+ k% C' i" i) S6 v' B; O; z! K* v0 F. m3 g4 l: o3 m
重启服务:
  w; B' i4 D5 GC:\Users\admin\Desktop\test_flask\venv\Scripts\python.exe -m flask run -h 0.0.0.0 -p 80802 V  |) M5 e1 X$ ~8 F
* Serving Flask app "app.py" (lazy loading)
9 m. l6 T+ _( r6 b# g$ b# N- Q * Environment: development* L6 u3 Q6 e- @- z
* Debug mode: on
' ?  R; c3 L& |! [; Q * Restarting with stat
1 j$ O9 C% R( X& z# F. u * Debugger is active!" l! X* t) [7 ?. }4 v8 A7 j% Y  H
* Debugger PIN: 215-100-437
5 Q& \( I5 r+ \+ S9 v) V/ y6 e * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
5 j; q  L2 k# V3 K) V- ^! ?4 J# [- l! a! \  Z( |3 I5 _
访问:
; V& D$ T' B* D! e8 j& `( n; C8 u% M& C& {) }
http://127.0.0.1:80801 x! k& t# I4 J  V6 N3 ~4 s! \+ z
Hello_World,sucesess
4 j2 [8 C5 @6 ~. G3 _3 q, b* G( P8 Q+ i! u7 ?) l- Q$ b
服务端返回值:( V5 g& {" N, D2 N: s$ s& q# r
127.0.0.1 - - [28/May/2024 13:58:12] "GET / HTTP/1.1" 200 -4 Y$ t! Q, {. e
127.0.0.1 - - [28/May/2024 13:58:12] "GET /favicon.ico HTTP/1.1" 404 -# b# d) K# K: M( Q3 [
127.0.0.1 - - [28/May/2024 14:04:05] "GET / HTTP/1.1" 200 -6 P5 X: d  r2 x) u( _  B
127.0.0.1 - - [28/May/2024 14:04:06] "GET / HTTP/1.1" 200 -
$ @* y! @: l, D0 x+ o: ^2 P) u127.0.0.1 - - [28/May/2024 14:04:07] "GET / HTTP/1.1" 200 -
: j% U6 G& Y) i" T127.0.0.1 - - [28/May/2024 14:04:07] "GET / HTTP/1.1" 200 -6 U# Y9 F) C' b, M% Z( p! g
127.0.0.1 - - [28/May/2024 14:04:07] "GET / HTTP/1.1" 200 -( L3 ]0 C# I) u, s
5 Q0 Y( t( m0 K' j3 J8 {
7 Y. o$ j% f, I. [; L
- n8 d) `7 B, P4 H" A

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-5-28 14:10:09 | 显示全部楼层
* Detected change in 'C:\\Users\\admin\\Desktop\\test_flask\\app.py', reloading
* O: T  L; m% e) y" G * Restarting with stat+ X4 X7 z: l* ~, G# O% E% u( S9 }. r( L
* Debugger is active!7 p  {# j& Z. h) s
* Debugger PIN: 215-100-437
+ e; N% y0 Z. `! ~ * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
+ D7 S) i( H1 [5 ]+ {127.0.0.1 - - [28/May/2024 14:09:42] "GET /index HTTP/1.1" 200 -
' T# d$ t* n9 O2 W( G: i127.0.0.1 - - [28/May/2024 14:09:45] "GET /index HTTP/1.1" 200 -, f3 D5 x( @& b- {
127.0.0.1 - - [28/May/2024 14:09:47] "GET /index HTTP/1.1" 200 -
2 s$ x  c+ E. m  |& h# w2 o- [* z( S127.0.0.1 - - [28/May/2024 14:09:47] "GET /index HTTP/1.1" 200 -2 [- ?. |) U( D) E
127.0.0.1 - - [28/May/2024 14:09:49] "GET /index HTTP/1.1" 200 -2 g5 F( J& l  R
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 01:37 , Processed in 0.027693 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表