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

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2024-5-28 11:30:32 | 显示全部楼层 |阅读模式
首先引入项目找到右上角 test_flask >  Edit Configurations & r4 e7 C, Y% p
弹出对话框:
$ d# k& `, {7 A' p" Y) {1 b
' I9 O+ U* B' a左上角的+号。选择python6 H! G) ]7 ~/ w
. E  |% _# @  D
弹出对话框:, a0 t3 T9 K/ ]* E1 `" o/ Z  i

& t5 t* R% l- N修改Name 为项目名称:   test_flask2 S' E4 s5 p2 ^; C
      configuration:   $ b. j& Y1 W# J0 j
        第一个倒三角符号区,选择Module name      后面框中输入: flask
( u& i  N) X$ @0 z$ p0 V              接下来设置Parameters   run -h 0.0.0.0 -p 8080! V- n+ ~2 z5 \1 T- j+ `+ }; T+ m& l

) P# B1 c2 R0 P8 u8 T    第二个倒三角:  Environment
1 N% k8 t) I/ Z% J; f- p# E; \. a3 h; M           Environment variables:    后面的像test的文件的图标,点击配置,弹出对话框:# {6 G# L. S1 z0 m% j7 O, S- x( `) j
                            Name  写上FLASK_APP    value值 app.py   ( u- [7 ]6 h  s* Y4 i
                             Name 写上 FLASK_ENV    value值 development      
# \' y4 M0 u: |) m* r1 K            点击ok保存即可,返回上级页面:; _* E- m" f  p7 t; u# g
          Python interpreter 选择我们安装的python解释器6 v2 x/ t/ E1 w5 u+ C
! H) }/ G5 r3 j$ {
          为了防止后面访问出现问题  我们需要配置  Working directory   :  C:\Users\admin\Desktop\test_flask
2 N, C3 P/ Q0 D/ w' I           勾选上下面两个对话框即可。  
7 @6 g3 n; d- i, V  点击ok保存即可; `: h$ D; V& O8 Z( Z

: g  C: F4 J& a4 D
( T' t4 ^' T& G: `4 b% x5 V' x, e6 e! u- C
因程序调不到python的flask插件:7 D9 a5 a, M+ f3 g. ~: a# j
      配置如下:, `* U3 `1 W/ T2 x& s' \2 j
    点击左上角file选择settings  * C  w' o5 u7 S
弹出对话框,选择Project: test_flask
+ b$ L5 b1 m. k7 G$ m6 m       出现我们的env环境" Q+ N$ q: D" s; q! B1 z
     需要的包如下:
$ @) E/ k  h% H6 Z     Click         7.0
8 X5 P1 N2 a0 g6 V9 O  G5 E/ j     Flask        1.1.22 F* e% u# l4 w; d
     Jinjia2      2.11.2
0 [. i4 P- J  S" s( e     MarkupSafe   2.0.0
( V8 s3 r6 X" `: t. X, V3 h( z8 P4 j     Werkzeug       1.0.0
; w9 r! D. T1 K, D/ y     itsdangerous   1.1.0
5 y( `) ]+ i0 K- O  V     pip                20.0.2
/ c4 f# ], T' {# }1 R0 P* j4 b' w' [     setuptools      45.2.0
/ r6 R7 `; B" F5 P  E  U  O    wheel            0.34.2
% a. T3 l. L  a
; h) J/ o( u( v" a1 }6 b% C以上插件是当前测试成功的环境变量需要的包。
+ u3 Y. k, j, A' l/ \4 D5 W测试:# e0 M' x6 k8 ^+ P) e- D
& y+ T% U; \/ |4 m# `
from flask import Flask9 {/ n, y- u/ _4 e/ s7 K
# 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容# ?. m7 ?2 Y: P8 a
app = Flask(__name__)- b0 N2 S6 V7 ?+ V4 K

  a4 ?. g" i3 W# w#methods参数用于指定允许的请求格式. H' y9 }1 X( a2 \# ?% @
#常规输入url的访问就是get方法
- z! {/ g0 @: j( n) W, p1 b. [( C* _# h@app.route('/')- v2 S8 t8 T! b5 ^2 x3 t
def Hello_World():
9 q3 I1 t. m2 y. U* B8 C" h$ F- N     '''视图函数'''( y/ d' \9 K* a5 o9 `
     return 'Hello_World,sucesess'7 _, V$ U9 Q1 e
#注意路由路径不要重名,映射的视图函数也不要重名
* Q- h) w! `$ U/ }! y8 h) l$ X) h5 l- h: y) [( G, \# K6 |
###v1.0之后的版本,不推荐的写法
' ~% t  R$ ~& z7 b( z1 H! {3 U1 w# if __name__ == '__main__':
6 Z7 O/ `& X* R9 N4 U#    app.run()
/ x  f# V% l3 b& A: D- f: f
, z; U4 N5 A/ J4 y' G  n
9 P& h" ]4 z0 \( G! E/ e6 L. x. A" R% S- T9 I2 }; t! Z
python.exe -m flask run -h 0.0.0.0 -p 80
0 y' v4 j: S7 r. s0 s. H6 b * Serving Flask app "app.py" (lazy loading)
+ g( L. f( v# W7 D) t * Environment: development
, b6 v) V: ?/ z: g# k * Debug mode: on
: l& u- @5 J8 X  n. E/ n  E * Restarting with stat
# @2 b7 n1 [* F; }" m * Debugger is active!9 m, g7 S% {2 @) ^1 I- N
* Debugger PIN: 215-100-4372 [4 E! T) x5 q; v( C, i
* Running on http://0.0.0.0:80/ (Press CTRL+C to quit)
5 |2 L/ v7 ]" T( U+ o7 k
/ s: E- G' d% m& y; E; W9 J, A$ J: l/ m5 c. |# P3 M; g

; c( v# ]0 ~/ z# Q- a
+ w/ O, C' _+ u1 y; ^浏览器访问结果:
; A- `: f4 p7 @7 B
$ l+ s/ G1 W1 L5 }9 Ghttp://127.0.0.1/
* R' ?2 O* W3 X5 e5 M
* o4 ^& s# J% k4 G3 J8 x; U1 @Hello_World,sucesess2 v- o* x4 w" g9 X) H! w/ z5 H
& m4 W$ S: g" q5 |/ R7 ^! f8 b
测试正常。
$ [7 Q. V# a1 Z: t8 e
( I- z( I; G' Y4 i9 A7 ?
0 P. \4 c2 g) ^: w否则就报这个错误:
# [. [! e' V6 h. Q1 c$ T& cmodulenotfounderror: no module named 'app'0 K. U4 C% C: ?% I. _
等报错。
* r  f! r6 m9 l" c8 r4 \$ ]& d# h( M) p/ p0 y
成功之后,不配置, N( O( r" z: k4 ?& O7 R
我们需要配置  Working directory   :  C:\Users\admin\Desktop\test_flask
+ T7 j( u! B$ Y           勾选上下面两个对话框即可。  
! t/ J. c) S  A; k3 _9 J
7 ^( E$ A' s" s* H* Z4 W4 h9 a这个也可以成功了。是因为引入了该变量了。7 x7 @. S' A' s& @' S; ]  U- F. B. R

# V4 g) r$ ?  j5 d: K
+ {* L5 A% K, m7 x; h# q
2 l+ j4 L  Z' @2 D  r- T' s, k" `& H: I1 R( ^. T5 e7 e

9 n2 j) T" N6 l. c: o, R

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-5-28 13:56:24 | 显示全部楼层
访问报错信息:, G$ j0 i2 \$ o7 H& e
flask.cli.NoAppException
. P# R. n9 D* I; F6 r) {! i' n1 b# u5 R" l6 E7 [$ b9 I, {' g0 z
flask.cli.NoAppException: Could not import "app".
" _+ A' K$ ^  z0 x, |* i3 VTraceback (most recent call last)
2 ?1 `$ i0 b" V7 g6 \& \* J4 J0 p$ r% s- C/ J. h" ]$ J8 e
    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 240, in locate_app
# k: @# o& B% y' B, y
. Q" ~, C( G6 w, N  N    __import__(module_name)
9 Z3 C5 P; c% F1 ~
; c5 W3 j3 c- U7 B4 [    During handling of the above exception, another exception occurred:
# t' z0 Q3 a- N& g9 ]" [    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 338, in __call__
5 R) Y3 [) F* W" _: H+ ?& M0 B  W2 Y0 E+ W
    self._flush_bg_loading_exception()* \( d( N, m" o6 u, X

  h1 O+ a, ^0 ], h    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 326, in _flush_bg_loading_exception
  s5 ~, ~. Z6 e$ `3 J
3 I  E2 W' G- [0 N4 A    reraise(*exc_info)3 x' o4 z8 K: R& Q

) `% C+ V. C6 Q( u    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\_compat.py", line 39, in reraise: w: [+ p! Y) g5 X% q, D

/ a0 \; l) K5 ], ]% N    raise value" ^6 \9 A4 i0 Z2 f/ E
& J& k, F- I: A/ f. [) [, u
    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 314, in _load_app; W7 R7 |7 ]" o8 i

: d0 k: W2 r- o1 v4 c    self._load_unlocked()
; }5 t7 m9 A0 J. V: ?. Q2 B: T) B8 q3 J& V1 v, H  _  n* C
    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 330, in _load_unlocked
7 k9 z) y7 \9 G* X& y' K! @8 M1 U( k! b* I
    self._app = rv = self.loader()
: Y4 Y: n% W3 L+ q5 T! w& g2 `* \
    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 388, in load_app2 c& u. d( B# @: m

, q# \9 S0 A0 ~1 R* \. c9 T# k    app = locate_app(self, import_name, name)
. y+ M6 {% G0 l# W5 W3 c6 Q: E8 l3 N8 r) y  ^# y! M
    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 250, in locate_app
; P6 B4 ^# m8 l7 X' S+ ~$ j% H
3 F, |6 Z! p. L& p1 a    raise NoAppException('Could not import "{name}".'.format(name=module_name))0 S0 y! v3 r- r! [/ R
3 o7 |. `4 J: t. s
    flask.cli.NoAppException: Could not import "app".8 X! @/ y; e4 N& H; t  ~) q
. S# D. F, {0 A/ G4 A% K
The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error.
& e+ p7 o/ b0 k8 q+ x2 }$ p/ d! L; o, w  z
To 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.
, p6 v+ K1 ?( |* ]4 L& Z
" \3 g0 Q: i! m8 |' _2 NYou can execute arbitrary Python code in the stack frames and there are some extra helpers available for introspection:5 l5 K- m" ~8 v/ d: X

" s$ j3 G+ ^: Q7 e' e    dump() shows all variables in the frame
1 u( u  r: O* E/ G+ w# {9 t    dump(obj) dumps all that's known about the object9 U; p/ b7 X$ `( z" H+ \

  m8 b: A6 H  `

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
# e' d+ p" E8 q2 d$ G  V3 z. L * Serving Flask app "app.py" (lazy loading)
2 `9 ~, y4 W) N# m4 ?: i5 S * Environment: development9 c* g7 _8 d. t, U# E% @# ~3 g
* Debug mode: on2 v+ V- K9 x% G& H; C! z
* Restarting with stat
- A4 M7 F, u) ~& \0 V * Debugger is active!
; O9 T0 e2 l$ Q5 x1 u8 w0 M * Debugger PIN: 215-100-437
; u0 f( S$ T) w; M$ C * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)3 Z$ G1 d+ E! W  @
127.0.0.1 - - [28/May/2024 13:56:09] "GET / HTTP/1.1" 500 -
" g( N$ \! @. ?Traceback (most recent call last):
8 s' u3 p- S! I  q- }  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 240, in locate_app
2 I0 I5 E" `9 K3 o( T  |+ X5 C    __import__(module_name)
0 w: h* @7 a( v8 _9 X; D( S" LModuleNotFoundError: No module named 'app'
. Q* I9 g  b2 c+ B) e4 V$ x+ w' ~
6 E5 K: G1 M1 iDuring handling of the above exception, another exception occurred:
+ H/ a0 F/ O) H5 s0 Q1 I% I* V' }  b) e/ ~! z7 c  x4 d" h  F: i, a7 L
Traceback (most recent call last):
- X. n) i5 ^7 `& a  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 338, in __call__
/ H0 L" n- D4 _0 \- ]( w* [    self._flush_bg_loading_exception()
: r, ]8 K* z+ B0 {4 l  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 326, in _flush_bg_loading_exception( U# a! ]$ L5 }# r
    reraise(*exc_info)9 A& S9 ~& f2 o* x0 x' U# |
  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\_compat.py", line 39, in reraise
' b; L1 u6 D( [    raise value) u$ r" P/ ^; h
  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 314, in _load_app
  Q( c, F' k7 Y- G4 H. V( s    self._load_unlocked()  S2 ^7 n5 {8 ^2 Z: c
  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 330, in _load_unlocked
- w, ^4 t6 [5 q9 d% {( B& A/ s    self._app = rv = self.loader()
0 `# N, {) ^7 f2 s$ O! P' ~  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 388, in load_app+ L# S  _; U. Q' m$ \, d' F
    app = locate_app(self, import_name, name)1 P1 u, ~" J* M8 k4 i& J- d7 _+ l
  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 250, in locate_app
3 u) M: Q& Q! s3 X    raise NoAppException('Could not import "{name}".'.format(name=module_name))
. v9 A& A! ]+ ?1 m! Oflask.cli.NoAppException: Could not import "app".
: x* {" @! ^2 e+ n' P; |& u127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 -
# t& T+ e2 I" I5 v  T127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=jquery.js HTTP/1.1" 200 -7 [8 L, o* U& S% O0 x
127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 -+ a' y/ f+ R% a1 }1 h/ J3 n! _
127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -
9 G; m( [. \4 h3 i127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=ubuntu.ttf HTTP/1.1" 200 -1 F5 n- R) Z& H! W
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  配置
; \. s$ n8 o. q- I. |/ S# m+ u: V7 Y% C- ?0 ]
    修改Working directory:   c:\Users\admin\Desktop\test_flask
" _; m6 p( t( p8 M2 Z9 J     勾选Add content roots to ...  两个都勾上。
5 A, S) V3 I3 |$ j( U
; B( D6 |, L8 g! ~% Z7 x保存配置。点击ok和Apply   应用' }# g) |) O4 r5 C' I

; `+ h! P' a  J8 p* K* x. B  x; M7 h
3 S( A$ E: ?2 R2 Y. @; s重启服务:+ }3 J: V% @0 L: v* K! @
C:\Users\admin\Desktop\test_flask\venv\Scripts\python.exe -m flask run -h 0.0.0.0 -p 80804 ~# D, c5 J* K# |6 l/ z
* Serving Flask app "app.py" (lazy loading)
! n6 \; _, D% }+ u* i4 @7 B2 l * Environment: development
- ]! g/ l% B5 w. ~; d* o5 X * Debug mode: on
5 v  ~* ^; [! }) N- y5 I) ] * Restarting with stat
$ K( l. o3 o6 e! V3 L5 R * Debugger is active!9 v+ V* _3 x6 m* e. l9 v9 O
* Debugger PIN: 215-100-437
/ D7 q& E) q8 I * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
9 C1 n, Z3 G4 Z) K. w0 h6 _! ?% c; }9 J
访问:
% _+ ~0 L- y2 B& X3 D* R
% _$ }% ]5 M6 S& a  e2 Fhttp://127.0.0.1:8080
, ^) |* n& v# `Hello_World,sucesess
2 E# [5 r2 |% w! X. A* H1 {
. t* T# S8 U; x4 s服务端返回值:
7 ^& A$ S# \9 E7 V127.0.0.1 - - [28/May/2024 13:58:12] "GET / HTTP/1.1" 200 -
& _  @5 C5 u' S1 Y  o127.0.0.1 - - [28/May/2024 13:58:12] "GET /favicon.ico HTTP/1.1" 404 -9 ], ]- O  x0 Y  q& |9 H
127.0.0.1 - - [28/May/2024 14:04:05] "GET / HTTP/1.1" 200 -
5 m, i5 ?, }* X0 j+ L, M6 [  h127.0.0.1 - - [28/May/2024 14:04:06] "GET / HTTP/1.1" 200 -# u7 o% a3 k/ G( X9 d
127.0.0.1 - - [28/May/2024 14:04:07] "GET / HTTP/1.1" 200 -
  K5 Q) t# O3 w8 y6 w, g127.0.0.1 - - [28/May/2024 14:04:07] "GET / HTTP/1.1" 200 -* ~, l. E+ R- C; m1 j2 J& i* C  t
127.0.0.1 - - [28/May/2024 14:04:07] "GET / HTTP/1.1" 200 -
& ]! c5 u; V: C) L1 O
0 |/ ?& D7 o" K+ G- z) A
+ }8 L' `: O  x3 }% g4 n% K. W- p2 Z2 M

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-5-28 14:10:09 | 显示全部楼层
* Detected change in 'C:\\Users\\admin\\Desktop\\test_flask\\app.py', reloading
7 ~  y# ]- P+ h8 Z! X6 O, C * Restarting with stat
/ Q: y3 l4 {8 o& D# ?, W8 { * Debugger is active!1 Y* P( D+ f( A. o. q$ d9 R$ p3 i
* Debugger PIN: 215-100-437( ]- `1 d, M, m9 R9 e
* Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
* {6 T2 b. t2 \/ X127.0.0.1 - - [28/May/2024 14:09:42] "GET /index HTTP/1.1" 200 -& t, q9 ]; w  H9 f
127.0.0.1 - - [28/May/2024 14:09:45] "GET /index HTTP/1.1" 200 -9 L4 |: G7 l$ P9 u
127.0.0.1 - - [28/May/2024 14:09:47] "GET /index HTTP/1.1" 200 -
: z  `+ Z( L3 a5 `127.0.0.1 - - [28/May/2024 14:09:47] "GET /index HTTP/1.1" 200 -
2 T7 c, ]5 I$ Z. o7 Y% A$ l4 |127.0.0.1 - - [28/May/2024 14:09:49] "GET /index HTTP/1.1" 200 -
3 T' C7 J0 y, S) J+ U% {2 f3 l" t
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 00:32 , Processed in 0.016409 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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