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

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2024-5-28 11:30:32 | 显示全部楼层 |阅读模式
首先引入项目找到右上角 test_flask >  Edit Configurations
- p4 Z3 D" {- B1 [* s弹出对话框:. I) j" S. M6 l% I+ j
# e9 U- \8 H7 H  p
左上角的+号。选择python
- _' o2 K: P0 a8 d5 B' F; b  E6 b4 n4 N/ |
弹出对话框:: ^3 \: J. E  D3 T( N
  K  k7 v* [' E* @
修改Name 为项目名称:   test_flask' v+ ^3 o: d( C" w+ z) L0 T
      configuration:   
9 |* m% [8 e! S) [5 @        第一个倒三角符号区,选择Module name      后面框中输入: flask
1 ~2 v2 H: X; w/ q: c- E; v# B" U5 {              接下来设置Parameters   run -h 0.0.0.0 -p 8080
5 T; j$ E# y. w. N/ K
  \! ~" @8 a) g0 @$ k0 m3 q% Z    第二个倒三角:  Environment ( z* k) K4 G! X
           Environment variables:    后面的像test的文件的图标,点击配置,弹出对话框:
+ f( s2 T) y( M2 u( G7 Z  f7 Y& p                            Name  写上FLASK_APP    value值 app.py   " c  A  G1 z% h) O- U: ^  e/ I2 v
                             Name 写上 FLASK_ENV    value值 development      4 A0 U; Z" v7 h/ @6 v; B
            点击ok保存即可,返回上级页面:6 e& R. f' `% [& u. D
          Python interpreter 选择我们安装的python解释器
) @  E9 h. D" o& `5 ?- F3 E& t; A6 W# T/ m- o2 F
          为了防止后面访问出现问题  我们需要配置  Working directory   :  C:\Users\admin\Desktop\test_flask+ G% a) \# F  l0 ~9 P+ u
           勾选上下面两个对话框即可。  
* ~* j' @" ^+ n7 X* j  点击ok保存即可
0 a: m4 {- i! W! F9 C; u) v7 \7 O# v1 F3 w

/ U7 u% [( T1 H& P2 x, R- k
+ L2 b1 V3 k! [& u$ L( g: h因程序调不到python的flask插件:4 Y  b9 L3 J# r
      配置如下:& p& O/ h5 N* Y( p8 Z; o
    点击左上角file选择settings  
7 m( u; v' ^2 N1 s  t/ U0 d弹出对话框,选择Project: test_flask
1 D- O8 D; o1 ^' {" H- r  r       出现我们的env环境3 N* v; R! Q. f
     需要的包如下:
; I" B/ [% k; i# z. |- s     Click         7.06 D3 j0 X5 t9 W
     Flask        1.1.2: u! \! ^  o2 }6 u1 c3 B" l
     Jinjia2      2.11.2( X9 V- `( u. u9 e' K
     MarkupSafe   2.0.0
9 }$ F$ i3 J$ a. a8 R! [     Werkzeug       1.0.0
! e) E2 ?4 J/ R% b     itsdangerous   1.1.0
( k1 ]' P4 f4 {% }2 M( m     pip                20.0.28 |8 ]* w$ U4 c1 M; u3 v
     setuptools      45.2.0
/ ?- |% X5 I6 k    wheel            0.34.2
: x  y& R* |. g% ]1 q: }
' o! D5 W6 W9 c3 v+ a+ @, j以上插件是当前测试成功的环境变量需要的包。7 |  R" D+ x- h: T# K! c. h. s# a
测试:# J/ b& b* N4 a! S) h4 W1 W

; I% l' J& ~: c, M! N' X& ~from flask import Flask6 t7 l( k2 |3 K2 P( D7 L0 A
# 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
+ H. e8 }+ ?. O' [. L& h5 a! Uapp = Flask(__name__)
1 k% X5 y) w, ~9 X/ E1 A
* v+ E- t" {' h7 ^#methods参数用于指定允许的请求格式
3 K. y0 B. S* v; s- E#常规输入url的访问就是get方法
; h) ?' i; c7 @; d- A' f. I@app.route('/')0 ~" y/ [7 f* S0 w' t* q; J- ~+ F
def Hello_World():
+ A% z1 J+ f3 ~) }8 h2 ]( W     '''视图函数'''
+ }; u* Q/ N) c! ^0 Z- C     return 'Hello_World,sucesess'( X8 ^* {0 C, I% e
#注意路由路径不要重名,映射的视图函数也不要重名
' v& x2 @8 C( Z( a3 F6 m; y/ a# D
###v1.0之后的版本,不推荐的写法
6 S$ G+ k- ]. I. {# if __name__ == '__main__':
# n/ t  ]! h( r6 U, u4 I5 r#    app.run()$ K# y' @. e) X! G, t& t
' M# W3 P3 d0 }
7 {0 o3 d' Y9 k& I- G5 w
0 I, F2 A1 d4 E0 d) A; l
python.exe -m flask run -h 0.0.0.0 -p 80
# K7 @2 P4 f! n4 T2 F7 }, }8 Z * Serving Flask app "app.py" (lazy loading)
; u. Y: _2 q2 E) A * Environment: development
, ~$ r- b$ w! K7 f: |' v * Debug mode: on9 X& y7 T6 L, n! q; R! ]
* Restarting with stat. j8 [$ ]2 c3 |! Q
* Debugger is active!2 w. T4 d7 I% ~9 S$ g: N
* Debugger PIN: 215-100-437; J! |& G% i/ P, n1 G
* Running on http://0.0.0.0:80/ (Press CTRL+C to quit)/ r! a" N8 W, Z  F5 U

  n7 ?5 k" ^/ r- S. u
5 V. R6 S+ g0 w( g1 m6 I# {# a1 f* |* v- A
: Y) l9 M( b; _- ]2 Z% _/ `
浏览器访问结果:4 a1 a7 B( J' z# [6 e
% w4 S2 f/ u6 c2 W6 F
http://127.0.0.1/& i/ K& z/ D) u- n; ?$ E0 ~

! ?& r/ H3 _* v# nHello_World,sucesess& X& F2 n7 L* f. [2 a+ Z/ _
  m2 D3 D& X1 Y; Y
测试正常。
& X/ t' c# j. f) h8 @. B
  g! m3 L# P6 L6 m" m4 a! n( K, R; f  p* `3 a9 [
否则就报这个错误:8 y" G0 @% o! s. }& M" i6 v  g+ d; y
modulenotfounderror: no module named 'app': y! O' l% s+ s; ~! H* E
等报错。  L; l- q% e$ }4 d# v& {8 `! R
7 c: u) j, J1 R# `
成功之后,不配置
9 q  o7 h( V* Q1 h 我们需要配置  Working directory   :  C:\Users\admin\Desktop\test_flask
% }. z  B4 B! K) U0 V5 ^           勾选上下面两个对话框即可。  ' J4 V  P# @; H% `
$ F# }$ R$ v- ?) t, _; y# j- k; P
这个也可以成功了。是因为引入了该变量了。: X" {" J& U, p/ k- x1 r, ^/ M

: F7 P0 |6 P2 y) x% {2 ?7 p
4 D- C# |7 b; }8 w% ]5 A0 T  [! z, l% L& d& V

6 I* a5 a; B. R' k
' J( H+ C2 \' u& d

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-5-28 13:56:24 | 显示全部楼层
访问报错信息:( M1 ~' M8 _8 m, P% T+ a
flask.cli.NoAppException
  ^' o, r& T4 w- ^" L+ k1 M0 z% F" l8 ]5 @" t4 H9 N
flask.cli.NoAppException: Could not import "app".
2 c9 r" u( X* m, W! B5 g& L. mTraceback (most recent call last)& o1 X5 ~' q8 `8 I5 l7 V$ D. b7 m* t2 k
/ b8 [* G$ U  r% A5 B. O4 i) ?
    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 240, in locate_app( I* _  q7 E/ g* ?7 G3 h: B7 L" ?
2 \, k: x2 l, M
    __import__(module_name)# \7 S9 C! M+ v6 \2 f& p3 \

: `( F6 p% p+ }7 j# ^& y) z$ r1 v    During handling of the above exception, another exception occurred:
3 D0 l* I) o* [5 K0 G8 O$ ]1 X    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 338, in __call__
! B; `# I: B& s, Z
# b' o" E$ i: l# L& Z    self._flush_bg_loading_exception()& }$ q0 g( a6 @& X+ z7 G
* ^& l6 ]# m' ^* F
    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 326, in _flush_bg_loading_exception
2 U. L; g$ `, l. j1 u& J
( |% Q7 P. _2 x* N( e& v$ f    reraise(*exc_info)- y. @2 _& E8 ]5 H, y  \# d

" Y, ~+ m( K* a: \* E3 C    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\_compat.py", line 39, in reraise
( G3 F) L& v* t" K1 U/ \* \3 A- g1 L; \8 B
    raise value( w- Q/ ^7 S2 h. S' f

. h& d) F$ D: z& d: P    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 314, in _load_app5 ]4 m/ P* I+ R

1 H' Y  g% ]; |8 i. K    self._load_unlocked()
7 Z5 R' M8 P4 j, H7 k" f& x
2 L( o+ K# |% `    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 330, in _load_unlocked* m! x9 c; u  Z# S! s7 _5 S$ j

- b/ Q! ^; o1 \2 I$ n- \    self._app = rv = self.loader()
; b1 R1 B9 {# e) b( M3 `5 s4 R% B$ w  B2 }" M! _3 @
    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 388, in load_app
9 D1 ^% _5 Q2 C/ k# i. w. ^7 E
/ R4 [0 |; `7 L9 w1 k7 [    app = locate_app(self, import_name, name)5 j: w/ u# R& d

( x  f* Y7 f( S6 W( w) |    File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 250, in locate_app! y% O  z# g0 k* h/ F$ G8 O9 R6 N
* n. U3 j' j7 ]* g3 y) t
    raise NoAppException('Could not import "{name}".'.format(name=module_name))' x; q. t6 t: a
& S" }2 |9 D# K+ a( m
    flask.cli.NoAppException: Could not import "app".
! K( e+ {7 }; s  d2 Z2 _  d8 F8 R% n" h1 K
The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error.; @1 k- u! d5 |! y4 Q

( g: R9 `( Z& U- pTo 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.
" i& w) }8 C) h! ^, g6 x4 t2 R- ^# `3 L- H
You can execute arbitrary Python code in the stack frames and there are some extra helpers available for introspection:8 U  p# n! S4 ?# V

" `2 q9 r. @# ]( w' _# |* C    dump() shows all variables in the frame5 l1 V9 N" O* w
    dump(obj) dumps all that's known about the object  y- E2 V8 N# e0 J
) v/ k2 q+ d( l

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
3 z5 k6 Q  G- n * Serving Flask app "app.py" (lazy loading)! k; e; ]/ C7 z
* Environment: development
8 Z5 x- x$ p: r: W( S * Debug mode: on- X0 O0 F* u* Q! Z9 u4 l
* Restarting with stat
* `; q, k' n, i$ }1 B- S( Q * Debugger is active!
/ ~9 O" K0 S: Q  m4 U$ p * Debugger PIN: 215-100-437$ X3 n( H# a- h1 ?
* Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
) ]; p0 R, }3 l  P1 X127.0.0.1 - - [28/May/2024 13:56:09] "GET / HTTP/1.1" 500 -
7 M1 d' Q7 s9 FTraceback (most recent call last):
3 f4 J4 x3 `9 S; h8 W+ z  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 240, in locate_app* K6 ~, f3 o. V2 u+ T
    __import__(module_name)
/ w1 Q5 B9 K+ {# P3 EModuleNotFoundError: No module named 'app'
# |4 l* Z! C8 q  E2 L* m$ Y  B# N& P% _- Q6 k$ Z" K; U
During handling of the above exception, another exception occurred:. c/ `& }) o) i8 u3 y
' Q" w$ d7 K6 P* b" ~9 V
Traceback (most recent call last):
+ Z. y" d9 f" S) c% G8 n  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 338, in __call__
7 E9 s6 Q& ]- X1 N) ~$ d    self._flush_bg_loading_exception()- k. O* E$ ?  J  s( I
  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 326, in _flush_bg_loading_exception# X6 B2 x* `0 O1 m  J
    reraise(*exc_info)
  w8 d$ L! j2 B  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\_compat.py", line 39, in reraise
% v) U. y0 a' ^    raise value# L, s# F3 D) i5 z; J: A4 D
  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 314, in _load_app8 F- R. T( W* \9 J
    self._load_unlocked()/ l% y! O4 ?& K& ^: h3 Y# S7 m3 n
  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 330, in _load_unlocked4 v; O2 O6 v" j( l+ A( S0 v% z
    self._app = rv = self.loader()
, Z, M2 M1 b) z7 a+ u  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 388, in load_app  l  ], S. a- I/ v2 G8 Z0 c. b' }
    app = locate_app(self, import_name, name)6 G1 R5 `" T% G+ y2 [; s6 o
  File "C:\Users\admin\Desktop\test_flask\venv\Lib\site-packages\flask\cli.py", line 250, in locate_app5 u  J3 L! d3 _
    raise NoAppException('Could not import "{name}".'.format(name=module_name))
5 Y& R  X) v  g  {# Wflask.cli.NoAppException: Could not import "app".5 B- k( G$ D8 ^6 A, u4 G. |
127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 -/ o) s" H5 c/ i" ]( s+ i
127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=jquery.js HTTP/1.1" 200 -; U$ C/ R+ \+ Y2 B- N6 K
127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 -
& U1 w+ e. R8 A& l' [127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200 -9 `% _; Z6 @7 s1 r9 K
127.0.0.1 - - [28/May/2024 13:56:09] "GET /?__debugger__=yes&cmd=resource&f=ubuntu.ttf HTTP/1.1" 200 -+ l& e, o" 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  配置; _  |1 s& z  z  C- U

* y- s& J, M/ E! I    修改Working directory:   c:\Users\admin\Desktop\test_flask2 ~& ?1 p, E5 q6 U5 V2 V' N
     勾选Add content roots to ...  两个都勾上。9 w. P. f: O) V8 d# D7 F

$ G4 N( t& D& z0 k/ @保存配置。点击ok和Apply   应用
8 G# ^8 d: m- t3 P% J
3 p' O: P+ \' \. q( G$ X* C+ `
( t% K; ?) ^# @% W8 E/ t重启服务:1 B( X2 f$ ^$ S0 a
C:\Users\admin\Desktop\test_flask\venv\Scripts\python.exe -m flask run -h 0.0.0.0 -p 8080
+ h% S4 S& x4 e6 h9 @6 n- V: P * Serving Flask app "app.py" (lazy loading)
! e% \+ F" B( F& u * Environment: development
9 K9 v3 E" C1 @7 j  X * Debug mode: on1 o& H& L2 y# F4 z* ^7 E% g/ i3 D
* Restarting with stat
" U4 s6 r  z7 M  B+ E  d% U& P * Debugger is active!
, m& W+ F0 ^, `+ T% z# q8 I* D * Debugger PIN: 215-100-437" |8 G4 E: E/ q/ A9 q' o# ~6 ?4 G
* Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
3 D2 N# e6 O9 h5 [# u% g' B0 p* u+ H
访问:
8 N* E; }7 x# w* I
/ F4 o5 d, e) \! C% d& `9 xhttp://127.0.0.1:8080
4 y: ~$ k8 O* z: o0 UHello_World,sucesess1 B* ^2 q4 y3 C- J. h$ F: z
# {. S2 V( B5 M8 F
服务端返回值:
) e7 n! l9 k* Q. r$ T0 M$ M127.0.0.1 - - [28/May/2024 13:58:12] "GET / HTTP/1.1" 200 -1 [! u, D" d8 R, D+ Z8 b  C
127.0.0.1 - - [28/May/2024 13:58:12] "GET /favicon.ico HTTP/1.1" 404 -2 k( V) r) {) w; \, ]
127.0.0.1 - - [28/May/2024 14:04:05] "GET / HTTP/1.1" 200 -7 F9 O6 k4 l' u) W6 @# I$ {# K$ b
127.0.0.1 - - [28/May/2024 14:04:06] "GET / HTTP/1.1" 200 -" c9 o( I6 X" A/ k: |! Q
127.0.0.1 - - [28/May/2024 14:04:07] "GET / HTTP/1.1" 200 -/ c7 M" [& J% J/ n1 c$ ~
127.0.0.1 - - [28/May/2024 14:04:07] "GET / HTTP/1.1" 200 -  X. q. C6 K5 K" h( d2 j) z3 H, U
127.0.0.1 - - [28/May/2024 14:04:07] "GET / HTTP/1.1" 200 -8 Q9 A* c  R& n  [
5 x+ ^: U+ m7 y) z: D! i4 m% m8 y

' M( S) I4 d. V) `, e* D( p0 p. R7 a3 n8 k

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2024-5-28 14:10:09 | 显示全部楼层
* Detected change in 'C:\\Users\\admin\\Desktop\\test_flask\\app.py', reloading) |' [% L1 f' B+ s, B! T6 F' ~7 f
* Restarting with stat" @: M* \* `& ]5 G. R
* Debugger is active!% x* n  N2 h# e
* Debugger PIN: 215-100-437
. }- q. M* x8 Y9 I& L2 }' o * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
& g, s- b5 {) L. F* G4 k127.0.0.1 - - [28/May/2024 14:09:42] "GET /index HTTP/1.1" 200 -
* c( s; t+ r# ~! \% \& F& t127.0.0.1 - - [28/May/2024 14:09:45] "GET /index HTTP/1.1" 200 -
/ j6 j" D1 r7 f" v  Y7 w! \0 i127.0.0.1 - - [28/May/2024 14:09:47] "GET /index HTTP/1.1" 200 -9 W$ X& ~: S  a, w
127.0.0.1 - - [28/May/2024 14:09:47] "GET /index HTTP/1.1" 200 -9 T% i1 `+ r: G  o
127.0.0.1 - - [28/May/2024 14:09:49] "GET /index HTTP/1.1" 200 -
+ e& J. p$ J! z; [5 W: S
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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