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

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2024-5-28 11:30:32 | 显示全部楼层 |阅读模式
首先引入项目找到右上角 test_flask >  Edit Configurations
4 T9 S0 Y7 r4 c. C' B弹出对话框:4 I' i6 z! _0 |. ?& A! u) N+ x
9 R5 a0 U) S* g+ @7 v* D
左上角的+号。选择python" L" g( x. I* H* X6 `; P

1 J# r" ?$ W9 W9 S2 k8 X% h' ]弹出对话框:, t6 W$ k$ f* z% }1 Z* X7 Z# C' I8 N

% O' L& Z$ D: |' [! K/ _修改Name 为项目名称:   test_flask
2 C& v$ O6 z+ Q/ ]+ D' o, W      configuration:   ' S1 l- {# o2 q; u. S
        第一个倒三角符号区,选择Module name      后面框中输入: flask / Z$ u( [5 v9 Q2 h
              接下来设置Parameters   run -h 0.0.0.0 -p 8080
& D& e" g% E- ]) C" w$ g' s2 ?# f# T2 T, P. z+ Y
    第二个倒三角:  Environment . V& z7 A; k6 c/ L; w# v% @3 U$ Q
           Environment variables:    后面的像test的文件的图标,点击配置,弹出对话框:  ^0 \4 i$ H- b- ^
                            Name  写上FLASK_APP    value值 app.py   
" v& z( K. ~' M. L1 t( ^) A                             Name 写上 FLASK_ENV    value值 development      + A& v: ?# T# m/ Z$ N7 C' w0 }$ P, w
            点击ok保存即可,返回上级页面:2 V8 G$ h) H2 z+ R; _
          Python interpreter 选择我们安装的python解释器; u' R/ e) o3 L; X/ k+ B! S

- ^) t9 @; c( G. u5 `          为了防止后面访问出现问题  我们需要配置  Working directory   :  C:\Users\admin\Desktop\test_flask) S+ u6 m: s6 h* p. \* D( T
           勾选上下面两个对话框即可。  0 V  |: O0 U5 f
  点击ok保存即可
2 L  L; p& R: B: A) N6 D& A- t# q9 z/ ?

# ~' F2 e: c; z
! u, x. V0 b* t- S' Z9 a因程序调不到python的flask插件:  @8 C3 l1 F5 G
      配置如下:# |; ^' a$ c7 x
    点击左上角file选择settings  # m. a1 y) }0 j1 O0 {
弹出对话框,选择Project: test_flask
+ F1 }  a1 t5 i7 y- R       出现我们的env环境
; A; w5 f7 z4 D     需要的包如下:
+ q2 `# B9 J6 g6 c) c" u$ e     Click         7.03 h8 j6 E/ j, @$ T
     Flask        1.1.2
3 _$ X: ]' M5 o6 Y' g4 \     Jinjia2      2.11.2
) j1 x1 J) V7 s2 G. N     MarkupSafe   2.0.0
$ u7 B* C" ~: W7 V     Werkzeug       1.0.0
( s6 ?4 z' U  I* |3 i' g& t     itsdangerous   1.1.06 F* |$ z7 |+ k0 i
     pip                20.0.2
: q2 z! c. z. z     setuptools      45.2.0" ]  ?+ z5 V  r, E, l; }
    wheel            0.34.2
! ^0 J2 z3 O) a5 A+ \4 W& _  Y( f3 o) z5 x" [. Z
以上插件是当前测试成功的环境变量需要的包。1 t6 F% a4 a. q+ P
测试:. P3 f, m2 O0 y" D1 m) E+ u4 m5 m
$ a: m0 X( T# H2 j6 f; P
from flask import Flask% H4 `. W. @' ~1 p& S
# 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
. p+ y* S6 _2 A3 z  P  `1 Tapp = Flask(__name__)) K  _8 {( S) h( L1 `% O' r
; `% \# r1 X, @. Z) d$ r# L+ K, W
#methods参数用于指定允许的请求格式
8 ?  L. @+ K( @% q#常规输入url的访问就是get方法. p$ _$ X9 O8 _3 R
@app.route('/'): k, W$ T* D, t2 I. I7 h- D9 g$ m
def Hello_World():5 H: h- q: L$ D+ D7 T
     '''视图函数'''
2 j2 c! d6 G( I8 R     return 'Hello_World,sucesess'
7 g, P3 z5 |! M$ i# p3 C#注意路由路径不要重名,映射的视图函数也不要重名
1 e; C6 t/ v; ~* `8 M& F/ r* e5 R0 p& d2 {8 C: k4 ?
###v1.0之后的版本,不推荐的写法
/ z9 H: S' p- D: _# if __name__ == '__main__':# a1 u: W- M7 u
#    app.run()7 U5 l  {2 o2 G

$ t! i5 c3 [- T0 a( c/ r, u
5 i+ R3 M5 J& J" r2 r: h( `2 H1 b/ ?/ h
python.exe -m flask run -h 0.0.0.0 -p 80
* Q# @. q: b4 x2 | * Serving Flask app "app.py" (lazy loading)2 I+ K3 W+ }, z7 a. o/ Z6 Y; B% e
* Environment: development
( c+ p3 ]( W% @! K * Debug mode: on; P; Z0 g- x$ |
* Restarting with stat+ J/ R0 b0 B$ r& ^1 n
* Debugger is active!0 M( P/ J' T! _8 a/ b
* Debugger PIN: 215-100-437
: L. l( |/ n5 Y * Running on http://0.0.0.0:80/ (Press CTRL+C to quit)% m+ [# U, z, T0 i& {% |: X: f
8 Q# g1 j+ u4 A, `$ A

( N1 s4 o* L, o6 v" t: y& \1 w; @9 J# l7 I
: R1 z8 L3 A3 j  N, H+ _' L- P
浏览器访问结果:
- ]" g8 G) M: a* w1 |0 j2 v7 }9 V( ~. S  _. ?7 ?% ~
http://127.0.0.1/6 F! N: a2 F: P6 o2 T/ V$ ^1 i$ l, M$ j

( l! C/ ]* ]5 n! R% X/ B4 @Hello_World,sucesess: }4 _: Y0 F' E1 @: a; [2 F, ~

8 W  i  b% v4 v. Z测试正常。2 m4 B. x" m% g! q: K
$ [6 |- }: |. R' v% h3 c, v4 A

1 q& g$ A0 f( C否则就报这个错误:) K: r/ |* i5 d* l
modulenotfounderror: no module named 'app'- w8 c/ [: i6 Y8 n9 r% ]- y6 k: m
等报错。+ V8 e! Q: p3 y! B& d  ^

$ \5 m+ N  e$ d+ g1 O# g" \成功之后,不配置
* \3 A4 q/ E- o 我们需要配置  Working directory   :  C:\Users\admin\Desktop\test_flask
7 l; N2 i* x  F1 T) `           勾选上下面两个对话框即可。  / Q% h0 c& Q* h6 Y5 a
/ ~( ^- [$ o4 \3 h+ b( U1 V1 Y
这个也可以成功了。是因为引入了该变量了。2 Z/ I# H) J/ O1 Y# l
: G. Y" b" v; U& D% X. A& o! e

* U- {( o% a! w1 u% _* B  P. v# T+ t& E+ c9 t# Q  E, t; J
( K: b8 O: m4 U7 T1 F) l) d. B2 ]
# {! |" N% ]2 V4 Z. j% `' F3 Y* @4 \

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-5-28 13:56:24 | 显示全部楼层
访问报错信息:
7 m8 J) A; T* u  x, }( s4 dflask.cli.NoAppException
2 t: S. o, d& M5 O$ x3 p9 Y( ?- [7 j
flask.cli.NoAppException: Could not import "app".
6 [: M) ?# G8 e  h8 FTraceback (most recent call last)
6 {0 t* }8 x' L, Y5 c2 X
5 {# U' X& |% x6 D' {2 v6 S* c) c5 e    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 240, in locate_app
& |; G- U8 s# J3 @8 L& C* R) b+ @% E+ i7 J
    __import__(module_name)
* ?0 R" T& V2 s$ B1 k
& r2 f" ]' q6 Z2 V; \& }5 i; `  t    During handling of the above exception, another exception occurred:: n0 s6 f# G) K) Z* h
    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 338, in __call__
1 U( W7 q/ I# _/ t* d5 ?7 W* o  ~5 C7 t( m
    self._flush_bg_loading_exception()% i2 z, K/ ~6 u. U* t$ J- J

& b9 g% N: ^" c' H  l4 O    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 326, in _flush_bg_loading_exception! b2 ]( U! u7 G- f9 \! h0 `

( w+ n1 W% U/ [" a6 X; E    reraise(*exc_info)" S3 x- Z8 H; q. n

, M8 C/ \: `+ ?# t( o$ B, ]) }    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\_compat.py", line 39, in reraise
2 w2 ^+ ?5 d- m0 b  w) j. v) O
( V2 k+ a, T# E% F+ a    raise value
+ A5 K9 P+ u9 u) T, x) F
  j0 Z, E' t; e7 z    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 314, in _load_app  I# }  ?7 f  r/ {3 W) M7 e

0 Y; u& r+ L% t0 T  W9 |& q    self._load_unlocked()
) X+ V: i, H, \2 r9 z: Q$ B' s0 k1 Q, G& T
    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 330, in _load_unlocked
+ u# a! x3 K  V# F% ~6 x! g0 D% Z5 f, V" v) @5 ~% T- J
    self._app = rv = self.loader()2 r* d5 {% H3 l2 F- }7 \8 L

9 g; w" L+ @8 ~9 Y5 F    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 388, in load_app5 h$ ^  F- W, I& _

: s  S! D& O8 G: n) F4 [$ c* f' ]    app = locate_app(self, import_name, name)
1 ~% J3 b& u8 X- `# u2 r- ]3 b; n6 N9 p" X$ p& R1 C" X
    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 250, in locate_app* ?' D8 g+ M8 L3 t
4 }1 B, e, _- ~/ \  O4 o
    raise NoAppException('Could not import "{name}".'.format(name=module_name))
1 X, N- G$ ~" C- i# `- V( D) i* T; Y+ G
6 t- J0 C9 g3 `; P; U6 F    flask.cli.NoAppException: Could not import "app".1 |2 U( q( a; O' _. x8 c8 `
2 ~& ?8 h* ]- h9 d2 o
The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error.
8 x( d# j' Z+ f* b
7 L. c* z) j% t2 sTo 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.2 {: U" w; z; z6 N
5 d$ {; r! t/ l0 P
You can execute arbitrary Python code in the stack frames and there are some extra helpers available for introspection:
+ |$ q2 ?+ S& [# \
. h  w$ L3 K( a4 s1 I' \7 b- T    dump() shows all variables in the frame
% U* t& G6 u2 p" k4 k    dump(obj) dumps all that's known about the object8 d6 r+ i/ A% R
- @9 w) c8 G7 G3 A; J( k$ |

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; Y. Z: G0 J5 _/ E8 _2 E0 m
* Serving Flask app "app.py" (lazy loading)
  t9 K0 w- f" M2 u, h- u * Environment: development
! h7 Y2 F& \( @2 Z  \ * Debug mode: on
' ]# C! \* I1 H! N. @9 w. }: ] * Restarting with stat
: O' o% W  r4 E6 q6 ^ * Debugger is active!
6 I, N6 v4 y0 b9 h, } * Debugger PIN: 215-100-437) q* [, G) H) u. O3 _3 Y, z) I
* Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
" q2 x7 N* i9 v# N127.0.0.1 - - [28/May/2024 13:56:09] "GET / HTTP/1.1" 500 -
+ F8 ^" [/ t5 z8 }5 m# PTraceback (most recent call last):
0 j& [1 d# i" P! S% h; k3 b  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 240, in locate_app
) R  N( K$ i  }0 G% _    __import__(module_name)
) q3 V" ]: g( C8 W' e; l! ]ModuleNotFoundError: No module named 'app'
+ c; }+ ^, Z: G/ a
( k# b9 z( m/ ?5 Y" N( p" F3 PDuring handling of the above exception, another exception occurred:
% B# z, X, N) Y& ]4 x. x  u4 [4 Y7 r9 F0 \
Traceback (most recent call last):
4 z( o! I4 r3 L% Y: ]& c! h  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 338, in __call__( e7 S4 g7 q9 H& w1 d, j" u4 d9 b) D
    self._flush_bg_loading_exception()1 _) y. ?# T+ u9 I: l! g6 o8 \# h
  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 326, in _flush_bg_loading_exception
& w. q0 a7 Q, s4 Y# E2 R$ |    reraise(*exc_info)
9 Q7 n) C$ r% t/ [, U) i3 X) g  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\_compat.py", line 39, in reraise
- i# U: E! U$ a5 b+ H$ l2 n2 g    raise value$ W0 _9 h, P! |' u
  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 314, in _load_app
/ ~8 d. u4 g* _' b    self._load_unlocked()# e' R) Z6 u3 ?
  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 330, in _load_unlocked
, w3 m" A' U! `& |    self._app = rv = self.loader()
& y+ W" Q+ X$ K: r% {. Z  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 388, in load_app
) z. {8 d' _+ r    app = locate_app(self, import_name, name)
, c9 d& _) o# b5 y  N' p  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 250, in locate_app
" h7 D, n5 A9 k6 D& B( r0 C' a1 b! k    raise NoAppException('Could not import "{name}".'.format(name=module_name)): n, i$ C3 P4 l; o; E  _
flask.cli.NoAppException: Could not import "app".
; `& J8 [: r" l, l127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 -
/ d2 {% o  x! J& H8 b127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=jquery.js HTTP/1.1" 200 -6 _# U8 L. B2 `# u! w4 x5 ]
127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 -# z* |! Y( j% v- C3 \
127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -3 y$ w$ M8 b1 O9 F+ g# [; Q
127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=ubuntu.ttf HTTP/1.1" 200 -
* d. R* u  h! Z1 `7 j- P0 f- ^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  配置6 x; r3 r, n5 `8 W- S
% ^5 i  H! O9 D# _% g" J% O7 p
    修改Working directory:   c:\Users\admin\Desktop\test_flask: p; c( R: F' r$ o# Z1 [$ y
     勾选Add content roots to ...  两个都勾上。2 K' O" \# O3 T' _' v& O# C1 y
+ c# n/ o/ a$ h( u' {8 p
保存配置。点击ok和Apply   应用
3 R- n& F) F: W! a% C3 r; l2 k% G) I' C2 _8 e& A) C6 R, A* v

' T0 z( I& V" y. {( O/ S; V重启服务:" l$ z/ s  E3 `" K' Z% D, ^9 |/ N
C:\Users\admin\Desktop\test_flask\venv\Scripts\python.exe -m flask run -h 0.0.0.0 -p 8080. K8 a: R; v0 z
* Serving Flask app "app.py" (lazy loading)
9 e/ e- M, Y$ H+ g * Environment: development8 m# ?2 B7 J9 {
* Debug mode: on
! ?+ \2 D+ K  K. d- B& V * Restarting with stat
2 E$ J8 B( P  v/ a: D * Debugger is active!5 {! I3 {* x" v0 g* J2 a
* Debugger PIN: 215-100-437/ Q0 @( A2 _0 B/ H9 J8 O
* Running on http://0.0.0.0:8080/ (Press CTRL+C to quit). _5 |; L5 B4 {( v2 i7 @8 c
6 d) P* l- ^5 A+ T/ i  k3 l( K, z
访问:* f7 i0 u) z) U# B

' p; G9 o" a/ m! M; `http://127.0.0.1:8080
$ f5 U9 t+ T& M3 Z' }% H" tHello_World,sucesess
2 M; s  M9 {# v+ M
: l5 p+ f6 \( L' `+ Y8 r! }# f2 [服务端返回值:
6 h% ?0 w( K2 S# o# j127.0.0.1 - - [28/May/2024 13:58:12] "GET / HTTP/1.1" 200 -
8 _  P/ ~& X) t5 K127.0.0.1 - - [28/May/2024 13:58:12] "GET /favicon.ico HTTP/1.1" 404 -& q7 G6 ^3 x) d: {$ y' y
127.0.0.1 - - [28/May/2024 14:04:05] "GET / HTTP/1.1" 200 -2 o% [  O) O$ l" r
127.0.0.1 - - [28/May/2024 14:04:06] "GET / HTTP/1.1" 200 -
) o$ n- i+ j! Y6 t127.0.0.1 - - [28/May/2024 14:04:07] "GET / HTTP/1.1" 200 -
- [( [5 ?5 c+ \( p127.0.0.1 - - [28/May/2024 14:04:07] "GET / HTTP/1.1" 200 -
$ Y+ D5 O: m+ A( `6 |: _3 |127.0.0.1 - - [28/May/2024 14:04:07] "GET / HTTP/1.1" 200 -
) K/ [9 X, p7 ~/ \8 b3 n+ _6 E2 {7 _) R9 i4 \: ]- s
1 j. H/ @& e. v- Z9 V, c

" `6 l) H9 d% k  N" n

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-5-28 14:10:09 | 显示全部楼层
* Detected change in 'C:\\Users\\admin\\Desktop\\test_flask\\app.py', reloading
7 W3 c& c( d, R( I# J" W& X) [ * Restarting with stat
* U! R. B9 I. ], I * Debugger is active!
& D/ w% ?1 z8 L( g5 W4 ]$ S/ K * Debugger PIN: 215-100-437
+ A- y$ P" q1 g * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)3 q4 H  Y- [8 `# W( b4 W
127.0.0.1 - - [28/May/2024 14:09:42] "GET /index HTTP/1.1" 200 -
& W3 H3 |& ]+ w# \6 x3 n1 X127.0.0.1 - - [28/May/2024 14:09:45] "GET /index HTTP/1.1" 200 -0 [" {" c6 w! _; s; s0 d% Y* d
127.0.0.1 - - [28/May/2024 14:09:47] "GET /index HTTP/1.1" 200 -4 O, g( w5 e. C. r. y/ y
127.0.0.1 - - [28/May/2024 14:09:47] "GET /index HTTP/1.1" 200 -
: e+ `$ l/ x. F0 r( c* P; ~& c127.0.0.1 - - [28/May/2024 14:09:49] "GET /index HTTP/1.1" 200 -
# e) C, R$ \, z/ J1 d0 B8 O0 i
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 01:36 , Processed in 0.027699 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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