%l3_2=LG`CmW&?h}4XV(w{Ng7u+#
zL>O-Cp7+*qLBmmOK$J;w%cHL3ha<4#Q^l|hQxE6N^R9&B29Lki(gxR1(OH~rR;
z{&!!i-yJ)fy%>)SJo#D!)s977qjB6qGH5NV>$XQmw$x&f%A*VFd->o@zw5mGj*COR
z#|V;ni-Mu&5mn(ccZVf44L^&T#(2jgSboC{I{^_G4jh+{D%;lm76Q<4ZJbUlsc(A`
zC8cTMY}YiBT9p(zgg475aG$x4*6^x-R;e4(tB!?aYi-Lr0=C1i
zF%w#jhmF&ATwFVdY?g>H51~XA%i@LF8$>@!Oy*?ji8oEZ%kv+h^&Lq)K6p6c*R$
zJHuz^q%Cz_>$j=)T&k2&riPPhydqWCw(#Iuu~w23!6M#
zJ}>0=_xE=5?R~%H*!c&G%S*k_$z7-LU>Wy?!+)Q|_C8BJ#3|P?>ElsU_Wpp2z^Aye
zk&6joMBo!~o;$h{LbT@xDFQci@d7t7!XuSGl$%HhV`sQY?i8Ql`H_&GIOL(N=zUB`
XahXJ7B)l?7f$v?on-tI@H^u!Iq2fpE
diff --git a/src/dj2/__pycache__/settings.cpython-38.pyc b/src/dj2/__pycache__/settings.cpython-38.pyc
deleted file mode 100644
index 119d4050d445e066b5b88ea209731ce9a1201932..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 3384
zcmb6bOH-?k{p7z
z>9#YSX}ilJ?AlG+RXcNMI_>W`+qSpOrpr5R=1$Y^$Tqkpi`24?&iUSNX=P+26~o{B
zPyV$rdMp4aX1FY;RKwl4UrL;Afs@K9EHAQI#Nh&@VG1t7rJ7_3aQU5t
zx+mcZIYS5F>RVwwLC%tMnz7ydV%)Lul0=epp(9!;C(k19Gn8h#9!*;g
z3bxI_a-B5(gSv&PtOmV_nrW&Y1Wo@zHVbamm)jb;`m3&;rA`*bWdpZqRsC$&)NEUP
zP^an5R-=(_SbmUpHxFDf9Y96Y^3t!(MvMCYk1mgH_9*(m8=#aC*paI1Y+5zLqb7uN
zJ9l=SOS3g+E(q>5U$?H*U+)C7Q;p!!)aAQ3=&R=KEB5_NYrb`W343NT2#X#`iG7Mub^Ij>&$G05ekM
zdGMKJo0b#KbSP{Kph0&`kIFu+wmd7?m9@@hX&)Ef?ibiGLGIz#+OQt3%wZ*%X4`e-
zT=eK6z1OF}#HjQNSMZDhv8qvN^)U8Z){Q|g^HMu5JzRG`V_CzhZf}{@Z7gni?U`rV
zwA|!%?Dz1^1a)2#4Yz7G{9YA$1TS)U5Bcdg_I?cIH%$|T%4^XhocJG9fIf
z=w@5qK-;JTzFak{b;^c12n#+6*=JU)H69C-*wJ#!Yxry^pmwu?-Ry_ij=(PDKu`yf
zk6K;tGLZ48`rZTv_GT4B=X!p4tzXDt8X4$Ds}^4W0!oj*!afbc8y(vH4&hnjcODfCDMzl+mm-Rxqr13tTlXv`@C7aDARzXx^
zVG70K2#_tu`Y5DXjKu9-|5bw}fNq+tMi8Fr*aI5}5sgU5k-#&-;q~&r&XNhXv^l-c~Nmmg#
zoGX_~#*(sTC<|(95@r13w}1HSAOH0CU;HZa=Z<{myI=n9yPy8%Z{Pm>1HMaQ-U(d7
z#lCz*HQY3Pf5-K}z)@^L6iIo-r=Ak<5!ec-X4zK5>_n)
zLH&ULn=j>WkDcX?jRyjre5rs^%ch=HJuD#+)@K$?$0q|TdM-?6Q3VbBYZL2lqg=(lT
z)XGbvqW*X#D)LIXtQ#wpA{P5ICT+QvLq>FUX&F07)uNCM?H}3LsXZ8>i`dxVEse*f4@up`v0UOFIy25j$
zvA99sSOGhwtmunIw@r-~O0j@6Wt>zaMWwW`f{q)xa$aRadSOX5NV%l4B=)vZxOKnO
z-W6}nme?SN=>+qxqro}uDI06=pB0L24>dNlq~;4sgiN)!JS;43`B+peZg1n`*D>!o
zZ*snTe3XB%zSVLp*E8N&=DOC};9raWy1&EU4t&4f?wz~t+}HECpIh&Kx5>?2mVAg)
zuhpQB`PlIPjEgj!6ov=R4oU-(I2ad&p6lPzk?17$z`mD8C86&UC1G?xM5uT``GfdL
z{6YF8jY-2Ng)!l{m=eW-2>%~R>XFAeIOLzwr@@J&kQx+Y$SECKzn8`(1V>jw5{ExY
Kanve|3;zXjykMmO
diff --git a/src/dj2/__pycache__/urls.cpython-37.pyc b/src/dj2/__pycache__/urls.cpython-37.pyc
deleted file mode 100644
index e94da20b5251e3dd66c9189e91b049a988b9fb5c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 3617
zcma);%X8XB7{DbS!WLj~><}j=wVaS(97i&OI0<#qN2Zx(+R1d%vX@Cst2PL
ziLJJ$oIBG){{Z{gOaCBUd&NTul@GZKJ;a=D01-o^PBOTzt=hL
zAJUloY5O6x#3DP0Bngi-})i_$e9iPFZ|Ho9`oPpz*{
z+sx<2w9Py>r)}n61~Xc|4dK{X%*$
z*Oo<(tXOn9o`;E1J*1;bds5WzBbw9WX^)*)>j9G9j6G|l`#$m<{6?}&>`R_I_7NrySn^%zt%=@YS$ghz
zlI?m(GM!`BvuOxvWFZ|R2_w`ICHM_|e}p@VVz@ml8$;dcyCcsXqMk4JTw6hoqRRV<
z?~cqKR*10z-D5@k>O{987Ve18$4-xA$GW9Ko3iwUVMw|onfA!_{Ej3Yd#)|nr(JzC
zii9zHHL|Beh5^Jz2(B>L!A`xt7maJ++GtO5bQ?XX6RtPJXO@of{UaEd5sUhNF7CUpd6S*MT*vgc)aS
zSwR}!X0UAQrbG9TVAGE_0UXUER&N82CMDPa<5-(+0P?`MtzeT)y17c&Jc^U3U9#5)
z%hNc))wwQ#z{J7Y)H2ptCEi&~US>`)$&E?BlhMRSXmads>&S+anZ95d$ht4GY
zv1wiOMH;QRrmYEdDK?|08a-Rlv#sT64siCt;?oMT2IRq7(K6FAu(X<5dI+}+ETU$Z
zAuGo#kUHjLpEFQAY?xk{8M>wu3Vr1F-Wj2QPJHATVJ`Zd2n7?9bpPVKE%JuQ?cauS
zdiwKF8J+qA*HIqtx0(uju?MdDxCN}zPcwOR8ZI5Oyq=c85&sIe48Oz|_;vWhm1cjD
qPh6=?0bYB`PiRq~o!zBm(p6lE(DK{anc3Od7he?$5(mHEz8<~)
zb%o>pAeH#90+r9;k1J`8GdPVicq3);8V~QZm9o=XnkO>B66}nYu|-X^vs#wQGS-|u
zugy~yEy>PlIm%fpZx^%z@SHJkE!ah^Nad1MvKO@_oEdpJkv;?$9X&Il&%A9Qn~?Dqf`Of
zqI47JHlrg=*qjB|J8*R&uZli})!quAe*wQiHIe>u~F|Qws
z!u9*eBY`M1QR8sF0$()x8KWWkijF(P$!6_LL{FWrH8M=62T7p)k)d^AGROION)sbP
zC@?)l7j4$$!zh()mM%6O3Q71l$VhjaCS~Sm4=lH*LITGcXnlF*J5_7%x(e#TfMl!#{8c8w7n&rBE%pxDJp!NMR}FPe5QVX*+$im&cr-)qAj
zRYSoUSyqsS*$n1w-E`;~60G^rA%LTG#PV&x)uaZOKsi>Y2Y}M|Z7Wz~i*9No93F+S
z*A6-BgZYV{;KEdsKxE=zd7>HXY&G6lOkQF}G0By2zvI!w+N2nln8%o;03FAwB#yH>
zAy>N}W;-3YZabYY!6G)MPLMxpb9Mb%IA`ve~
zVtV!}*oW)B>t#vHN}{EQ9OOaM9C5fn3i1W7<>8A%!N~XF&ca>}M4^PcePrw81P=vl
z`cRUqD9q3?Y7)&{2hQ+DjGHlTjhQS}Eywf;H{unn>8
z_U-J>%6l`DJT=@8Je^iuz@y?@7L*^3x*3VT%A!Sw}m9&aFt4gWO
zYLI$GuNt#PH8LAf`M6PuR{LiAkdILGb7eM0eH4T2r+ylM9H2ppLk`jq?SPEaFeM;|
zXeW(8?x08*-TT&|b&{?W0l1owT3EAV+ANCLnjwBprac{%0A*!f
zh|bZgkca6tIuCh-F3?5Dqx3pmf;>iV(3_CQ=`y_q`2t;`w;@l^Rk{Y5r0aA8@+94)
zcOYM+cj*@7Dbj8$$@d(+RLMVN;BO^0Cw{}K*FG?Of4^eQcg9NaY8M1?xk!xMdf^Lu70MTIhRE~
zlUgj9cdhBhvJ;WlkKr_n6Ga_R<7#X`j38g&zVpVFwJCkq0eY`V6tp%J
zL=_zGBkyR9w0i;Wx$M5!
z$$G;EDx=8xx;3DR-Oz-a_ArjLx^=+UEtuA4(g;l2QD;z0w%9e4Y;1T#YYUai0d6Qm
zQJ*Jcp6r)pNtPY($_`51lGMdL-H9OUFE`AlFqQM6M~L)1Btm1=X<3SUGXK}|~)tGx?+xvF*ATq>9q)Q96s%{QK{KC6NLlQnOe
zHY$@6H8mP`b24}#)YPcoHASP2K#A&5XsLNUSZd?$p*9QMl%_^~{@rH3G}=7c!6BTl
z;~3mH!67oK&-Sy&RBq*~CW3X|o=?vXNW14a#JeF%1}hn-;)Qv$@JY^E0K7{__zu5_
zL{T+$M2#XC#}JOEI3(kr@FeFS{W)9*{+bxa6$%`9c#GiQ3Li!6w4&Ud6-5RR-PTBZ
zpxefS$eL1)miyM!6=MbW}t
zk`OtDxtOmwv79_7mvaVj)?!}piB>Y=#_U}{45LiOiE$I&=N61X6}01kY+uz&Ez*5IK~2K0GkS{5PCB1VWsfGh^q$1JjoDf3b;}
zKubNFh)Lw#!I+0GagdWKP7ZOxW2ssI`*fGTmoSfh!i6j|a$5}AH0@zvc
zA|Kuu=j_KQ(}we?CZ?e)u*dVp7&F_DIG2%W;av1^j)dS0w8C*-G1j81(G8J~Zfm6b
z0!WL~zyxs5bOQIxXDHkT_n0PLg096=*u5Eg2{$3rg8O3+ZY>0EEe!58eO2EOXoROu
z!_0Vim}&4x{C)Yf;Y0dquFMVj70_zKcDE+d&~5)9-VJnpky%EJC%f;U8>c>|Y4&hA
zL6HE><~gSI35gJz{RHfrPl()9vTQG`>~v=^HplgxXvt!1LpfjP?(efw<{(>%XMlK?
zB&LE`jZqeT1%V(QlX{_
z(sM}~pE}~Q<+JC5_8QgVDoFZS)D=$Bzx3Pdi{~KeuEnCTSUJpM9+lt7X6sbG_iPqQ
z^hJtI{6seDyU}K5gN7T!jRv}Zjt#fX>C$82j>%uQiISY(!1M)LvKTVdyvn%hNORyN6w@Xms#5-|}IKH2#EEXakoc}&X8l$@w-o1paVT>QR>YUe)gnj-Tx
zn<5T`*D26|CN8isLJ5%Y8>6;q0>tKU=fyTM$MevfHgjaVWR7R#I<8H!-vn(ks=_8b
zjUP^OY`;w!&p~q7DxfJ(xk;Xf$h28yrb|}Y44ZLHGoym6wB0UaY?{~EG(XT7|0H}z
z6P8g)VA7Kes{j24hJ#BCY3Ok91B2l=NKcukbdk-R3nB~d@q%9l7bC
zO9$n|&X0qL!dKty318hZOgrZwK43GS27!gE@)OH;kE>e-Ye%j+Wa0IHHJ_6noBkq*
zDV+7KADq=cPId0AZO~?Z8-y0_dWE44WzE~`o&1)$>@(8eHiWZ(4I+$*zPB0So_HI-
zWf*UU%(ekN^UomAn3%iT1Ce)MkR;?S%e1>ZGuP)fBK@Brs0h8+dLs00HLRUSU=Q2O
zK0Ft+Jue{kUhk3EyVdAEV+i&j&dvlOM)1ASGr@POLEcOZ_K=?WQ4ncF-|v`{g-?4U#Ltc=%|zl31>9{QOw;rD
zR!e>WBv;$F)L7kb34YR$A1=wyeB?(o?vjR6e1Mk*%LS`)Wu;vDCs(M+1yq7p`^beP
za&>}y(=GV5tbBJU-*(BjEOJ_3P9V!EPdPg$CzRymhkRO>&z17gN78ahBPHLFBeEPU
zWQY@dYYKKK!9DjaC{OUN{5l|Z-o@)8=&548kHo-N0Qe3-k0oN!SR{5hHtzdP#3o{s
Zu>(lQz5gVn`{Qz~AII@Y{M`K5{{SC1B8>n5
diff --git a/src/dj2/__pycache__/views.cpython-38.pyc b/src/dj2/__pycache__/views.cpython-38.pyc
deleted file mode 100644
index 32822585e9bdb9f934449e6ac4e36982b788a22a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 10171
zcmdT~&2!tv6$e0&q9n?aWm}RZ%a*?_e@GFfIJRRu{*1p8+3`o>sA_4750uF816e?_
z%t$Ba;DbAp&UAX}!I~ag9XiwA+fy&;Ob9s88v|=u}kYa=j2MwoJ7kAEnsW%2b?MC=S_5t<(nDM(vbVoW`
z&D0IKiMG&I$WGcuJ&;}0OMQ@=X*=~pcGCdufZRfZv=eeG?V=&bZM2*AK=#mH+6UQ7
z`{@8=A04DaklSgP4ny|S5jqMvK*wkVatDplJCK7kMoGw>G)@zcyXajy4mm{c(Fw@i
zbdpX%?xFYTG~`}7LuVoP(Fb%6azCA?3y=rsB3*(!NSEnD$U}66u0jseHM$OYm~PNV
zkVoianuI(`+8t&1rW45(($CrWlf#;mxNen8w++iImn_3cT(xa;?P^$c^t5SO8Mvf+
zu%mRG7jasLkt`{BIOB_$I6xXjW);$Z8Ch0sm73ldGB&xpMig
zqu;uD=kD`wal6xE&1W)(WvxaWJyRybi4?6_N2j!%uJoP>9%pkUG8R!cRy6FnGC5IG
zNH!NFp@UC|+7zLYDA)M73@eP@0qZ)9w1+IpBWMVa%{
zluwst%g4*fljF!Irx$X@Luk}`%EcysS5u{Th=~TO4@yeB1;Oo;R$p(
zjdY6s6uq5dth4S@iznlrY?XCM)@}3ZwoBcj)FnJ!hphjEHp#M|%d$?dtV`;CBXyfS
zUANTzLF%@6x~)?8SE<|P>3XE@JE`mSbbYM*MiDQhcDtwTms(YHN$r5A-Qj5uNbR7f
z-RWshOYJUCJLG9^OYLq~EAxB28az1nPCA;HskD^JL)l!xs6K8StN?8soiP}
z{2B+t4l&E(?D8b%*G^{Oz^RE{ctVCbcBnBE~=b1v!qB8iP#!x&my+|EV`oP
zWBHa9btxj5Ii7EQ)@H|_wXZO#s7u<4zO35`y92*!?Z;|eNDIEvT8+wBB6|6CnwfOs+=N@)0;cPr6We6tQ)qnhGKwuZyOYlA
zQ+qTq0bPbW$J)WJXu&BNeGZwbJIHf~9^wv|6@l^yTGRdDw{y_FeZLK_&Gvcpz32(|+xoz3g6
zp1iu*T^Q}-TR5bP{hS=&H1%WjQ{^X5gv}^JxOrCw!x{H6f&6ew0CA07wU?8y
zp_%Z(Nd7E{1LN{WQ+R9x$}glJ&F3}>(lJ?U?6*OXaMs5Son@l5Iu;9W$oAL-;&mCO
z*WoL-0IOqn(%sS8&7S)RNoBume{x7JX=_$}e1Nyz%M(hc{|~B!3+Q0)KqQKzMIq?Ra||
zf9pO8i$*n2#{U$Ag5|<}K&T&*@+hsw=KuW;-#VDEcv1sq;_pE)SO$E~V4$xaO|bvd
z8>Fwp%w+StE>FfopP#4wv7_DrE6^;yk>knBZMYr-c+&@@A6juEsDB5VYC
zAjT(xATV}*%pmGc=YHU^vkoI{?07IHJ_*9WsQC%Qct~k4)|4?V_S0Mn?O$e|r=)Yo_<_jC|
z?{v5`RI4_?Cq4POOMdi`pG@R;1aXcFE^xworg9%q?yJcyC%IoE_cP>b
zUan;28cy&+NUkO1WLr*E)U>6HU?%VQ|o1fdD
zbK<96d!1#LvUusJ-xDA3{dUB6#0TR$kq&t0Af)@_daNHn`5=C7
GzW+bxAYDiR
diff --git a/src/dj2/__pycache__/wsgi.cpython-37.pyc b/src/dj2/__pycache__/wsgi.cpython-37.pyc
deleted file mode 100644
index e4b4ab0012a02c47e3be248a3f2571541724dd43..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 527
zcmYjO&2AGh5cWE06D=*`fH?aa3DzN%kctoj)DnfC^pGN?Tz1WRvhm{etkzD-_QHWz
z-~r&s^KkQ(6R*GtZ=y;a$>SN1=led7UmYLEB-r=2o9t^u$e%8`v3>|%gk{IUNwOp|
zl2k{_DC|8=tKPB~5s1qEj|1742R~`Zdf&+MP|^h%9bW&AKQ5*-mZMpzf~~M&vYfEG
z!4h(p#PQ5A_)?<<%iJ2+{<6?oeA2*#Wr9^GHyR#k*n(zT(WqU?hzcajGEvuB<-#d6
zSr+hK2Zjn8V9ErtYFA)r0=Tklr8GQb79d_bSKFtYOU!K|OJNGU(UfDw!SG2k=4-ri
z$R*So+X{^1SGG_*{u@R?=A+2pFTkbUS$a!`e{lBZ<$QXPF3vA6XY=VIeSdNG;obT5
zQFwV`!8v6LI~w>wng;qb^%SkYw-=G*L3`3cHZ+j<0hq07(D*nsN?3`FcK*&SwqK;_
zK5ys#jdZr<(?vPDLRV2rYUsFep9mP(&?ZSb7
z1djYYaLSbv{{kmoT9EoAKl}OF@B7|oUmqU_1nuYhCjIOY@~aE>t&hQL9QFjAAPXWq
z;VW<9;oMVx*<18H0$$PodLa7Z;G2(8?+aNR3O^>J!}}k>r+7M}nbAv`)1|4YD8{s^
zO#zt;gJ9+;+*ZbdrEUducbF^1Zxm2&DW|0oje_S2)}ZK`*K(WEyaYkhlvkCK8F$j?
zG{t&v5ur3SP^l5D+$N~eSX^4VlnS0v3lOZFtL#}636t4S6kO-#Kc~!;5$I?foG75g96l6Z~+9x?U*6p!98tv1`yEpUcC5tbvu4eOT%syUDu0LGd
zA7SUA1?QyB?P$;r7(;l*THo0A@s328A@{H=S^Egm4nVJEZFC#pMFC6RDAzvRL;FtZ
z?g6*%&*|hWDH<(J&2A-6;^wAP*(P?w{&kn^U|yQ>=?h$slMX7Z?%Lt2ozCa@35Xq{
M>pvL!NB$%KF943I#Q*>R
diff --git a/src/dj2/settings.py b/src/dj2/settings.py
deleted file mode 100644
index 94fa806..0000000
--- a/src/dj2/settings.py
+++ /dev/null
@@ -1,171 +0,0 @@
-"""
-Django settings for dj2 project.
-
-Generated by 'django-admin startproject' using Django 2.0.
-
-For more information on this file, see
-https://docs.djangoproject.com/en/2.0/topics/settings/
-
-For the full list of settings and their values, see
-https://docs.djangoproject.com/en/2.0/ref/settings/
-"""
-
-import os
-from util.configread import config_read
-
-# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
-BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-
-# Quick-start development settings - unsuitable for production
-# See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/
-
-# SECURITY WARNING: keep the secret key used in production secret!
-SECRET_KEY = 'w5yn#0gn2tt7pvu%hvwt0!lt=!$6+eqp4%m8)u3u#gknm@jm)k'
-
-# SECURITY WARNING: don't run with debug turned on in production!
-DEBUG = True
-
-ALLOWED_HOSTS = ["*"]
-
-# Application definition
-
-INSTALLED_APPS = [
- 'django.contrib.admin',
- 'django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- "main",
-]
-
-MIDDLEWARE = [
- 'django.middleware.security.SecurityMiddleware',
- 'django.contrib.sessions.middleware.SessionMiddleware',
- 'django.middleware.common.CommonMiddleware',
- # 'django.middleware.csrf.CsrfViewMiddleware',#Forbidden (CSRF cookie not set.)
- 'django.contrib.auth.middleware.AuthenticationMiddleware',
- 'django.contrib.messages.middleware.MessageMiddleware',
- 'django.middleware.clickjacking.XFrameOptionsMiddleware',
- 'threadlocals.middleware.ThreadLocalMiddleware',
- "xmiddleware.xparam.Xparam",
- "xmiddleware.xauth.Xauth",
-
-]
-
-SESSION_ENGINE = "django.contrib.sessions.backends.cache"
-SESSION_COOKIE_NAME = "sessionid"
-SESSION_COOKIE_PATH = "/"
-SESSION_COOKIE_DOMAIN = None
-SESSION_COOKIE_SECURE = False
-SESSION_COOKIE_HTTPONLY = True
-SESSION_COOKIE_AGE = 1209600
-SESSION_EXPIRE_AT_BROWSER_CLOSE = False
-SESSION_SAVE_EVERY_REQUEST = False
-
-ROOT_URLCONF = 'dj2.urls'
-TEMPLATES_DIR = os.path.join(BASE_DIR, "templates")
-TEMPLATES = [
- {
- 'BACKEND': 'django.template.backends.django.DjangoTemplates',
- 'DIRS': [TEMPLATES_DIR],
- 'APP_DIRS': True,
- 'OPTIONS': {
- 'context_processors': [
- 'django.template.context_processors.debug',
- 'django.template.context_processors.request',
- 'django.contrib.auth.context_processors.auth',
- 'django.contrib.messages.context_processors.messages',
- ],
- },
- },
-]
-
-WSGI_APPLICATION = 'dj2.wsgi.application'
-
-# Database
-# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
-
-# DATABASES = {
-# 'default': {
-# 'ENGINE': 'django.db.backends.sqlite3',
-# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
-# }
-# }
-
-dbtype, host, port, user, passwd, dbName, charset = config_read("config.ini")
-dbName=dbName.replace(" ","").strip()
-print(dbtype, host, port, user, passwd, dbName, charset)
-
-if dbtype == 'mysql':
- DATABASES = {
- 'default': {
- # 'ENGINE': 'django.db.backends.sqlite3',
- # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
- 'ENGINE': 'django.db.backends.mysql',
- 'OPTIONS': {
- 'sql_mode': 'traditional',
- 'init_command': "SET sql_mode='traditional'", # STRICT_TRANS_TABLES
- },
- 'NAME': dbName,
- 'USER': user,
- 'PASSWORD': passwd,
- 'HOST': host,
- 'PORT': port,
- 'charset': charset,
- 'TEST': {
- 'CHARSET': charset,
- 'COLLATION': 'utf8_general_ci',
- },
- 'CONN_MAX_AGE':60
- },
- }
-else:
- print("请使用mysql5.5数据库")
- os._exit(1)
-# Password validation
-# https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators
-
-AUTH_PASSWORD_VALIDATORS = [
- {
- 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
- },
- {
- 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
- },
- {
- 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
- },
- {
- 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
- },
-]
-
-# Internationalization
-# https://docs.djangoproject.com/en/2.0/topics/i18n/
-
-LANGUAGE_CODE = 'zh-Hans'
-
-TIME_ZONE = 'UTC'
-
-USE_I18N = True
-
-USE_L10N = True
-
-USE_TZ = True
-
-# Static files (CSS, JavaScript, Images)
-# https://docs.djangoproject.com/en/2.0/howto/static-files/
-
-
-
-STATIC_URL = '/assets/'
-STATICFILES_DIRS =[
-os.path.join(BASE_DIR, "templates/front/assets"),
-]
-
-# media
-MEDIA_URL = "/media/" # 自定义
-MEDIA_ROOT = os.path.join(BASE_DIR, 'media') # 自定义
-if os.path.isdir(MEDIA_ROOT) == False:
- os.mkdir(MEDIA_ROOT)
\ No newline at end of file
diff --git a/src/dj2/urls.py b/src/dj2/urls.py
deleted file mode 100644
index 8b85805..0000000
--- a/src/dj2/urls.py
+++ /dev/null
@@ -1,101 +0,0 @@
-"""dj2 URL Configuration
-
-The `urlpatterns` list routes URLs to views. For more information please see:
- https://docs.djangoproject.com/en/2.0/topics/http/urls/
-Examples:
-Function views
- 1. Add an import: from my_app import views
- 2. Add a URL to urlpatterns: path('', views.home, name='home')
-Class-based views
- 1. Add an import: from other_app.views import Home
- 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
-Including another URLconf
- 1. Import the include() function: from django.urls import include, path
- 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
-"""
-import os
-from django.contrib import admin
-from django.urls import path,include,re_path
-from django.conf.urls import url
-from django.views.static import serve
-from django.views.generic import TemplateView
-
-
-from . import views
-from dj2.settings import dbName as schemaName
-
-urlpatterns = [
- path('xadmin/', admin.site.urls),
- path(r'index/',views.index),
- re_path(r'admin/lib/(?P.*)/(?P.*)$', views.admin_lib2),
- re_path(r'admin/lib/(?P.*)/(?P.*)/(?P.*)$', views.admin_lib3),
- re_path(r'admin/lib/(?P.*)/(?P.*)/(?P.*)/(?P.*)$', views.admin_lib4),
- re_path(r'admin/page/(?P.*)$', views.admin_page),
- re_path(r'admin/page/(?P.*)/(?P.*)$', views.admin_page2),
- re_path(r'admin/pages/(?P.*)$', views.admin_pages),
- re_path(r'admin/pages/(?P.*)/(?P.*)$', views.admin_pages2),
-
- re_path(r'front/(?P.*)$', views.schema_front1),
- re_path(r'front/(?P.*)/(?P.*)$', views.schema_front2),
- re_path(r'front/(?P.*)/(?P.*)/(?P.*)$', views.schema_front3),
- re_path(r'front/(?P.*)/(?P.*)/(?P.*)/(?P.*)$', views.schema_front4),
- re_path(r'{}/front/(?P.*)$'.format(schemaName), views.schema_front1),
- re_path(r'{}/front/(?P.*)/(?P.*)$'.format(schemaName), views.schema_front2),
- re_path(r'{}/front/(?P.*)/(?P.*)/(?P.*)$'.format(schemaName), views.schema_front3),
- re_path(r'{}/front/(?P.*)/(?P.*)/(?P.*)/(?P.*)$'.format(schemaName), views.schema_front4),
- # re_path(r'assets/(?P.*)$', views.assets1),
- # re_path(r'assets/(?P.*)/(?P.*)$', views.assets2),
- # re_path(r'assets/(?P.*)/(?P.*)/(?P.*)$', views.assets3),
- # re_path(r'assets/(?P.*)/(?P.*)/(?P.*)/(?P.*)$', views.assets4),
- #re_path(r'admin/(?P.*)$', views.admin_file1),
- re_path(r'admin/(?P.*)/(?P.*)$', views.admin_file2),
- re_path(r'admin/(?P.*)/(?P.*)/(?P.*)$', views.admin_file3),
- re_path(r'admin/(?P.*)/(?P.*)/(?P.*)/(?P.*)$', views.admin_file4),
- re_path(r'layui/(?P.*)$', views.layui1),
- re_path(r'layui/(?P.*)/(?P.*)$', views.layui2),
- re_path(r'layui/(?P.*)/(?P.*)/(?P.*)$', views.layui3),
- re_path(r'layui/(?P.*)/(?P.*)/(?P.*)/(?P.*)$', views.layui4),
- re_path(r'pages/(?P.*)$', views.front_pages),
- re_path(r'pages/(?P.*)/(?P.*)$', views.front_pages2),
- # re_path(r'pages/(?P.*)$', views.front_file1),
- # re_path(r'(?Pcss|jss|img|image|iamges|font|fonts)/(?P.*)$', views.front_file2),
- re_path(r'modules/(?P.*)$', views.front_modules),
- re_path(r'css/(?P.*)$', views.css1),
- re_path(r'js/(?P.*)$', views.js1),
- re_path(r'img/(?P.*)$', views.img1),
- path(r'test//',views.test),
- path(r'null',views.null),
- path('{}/'.format(schemaName),include('main.urls')),#导入schemaName
-]
-
-#判断admin使用vue还是jquery
-if os.path.isdir(os.path.join(os.getcwd(),"templates/front/admin/dist/")):
- urlpatterns.extend([
- path(r'{}/admin/dist/index.html'.format(schemaName),
- TemplateView.as_view(template_name='front/admin/dist/index.html')),
- path(r'{}/admin/'.format(schemaName), TemplateView.as_view(template_name='front/admin/dist/index.html')),
- # 以下是后台admin的url匹配规则
- path(r'admin/dist/index.html'.format(schemaName),
- TemplateView.as_view(template_name='front/admin/dist/index.html')),
- path(r'admin/', TemplateView.as_view(template_name='front/admin/dist/index.html')),
- ])
-else:
- urlpatterns.extend([
- path(r'{}/admin/index.html'.format(schemaName),
- TemplateView.as_view(template_name='front/admin/index.html')),
- path(r'{}/admin/'.format(schemaName), TemplateView.as_view(template_name='front/admin/index.html')),
- # 以下是后台admin的url匹配规则
- path(r'admin/index.html'.format(schemaName),
- TemplateView.as_view(template_name='front/admin/index.html')),
- path(r'admin/', TemplateView.as_view(template_name='front/admin/index.html')),
-
- ])
-
-
-if os.path.isfile(os.path.join(os.getcwd(),"templates/front/index.html")):
- urlpatterns.extend([
- path(r'index.html', TemplateView.as_view(template_name='front/index.html')),
- path(r'{}/index.html'.format(schemaName), TemplateView.as_view(template_name='front/index.html')),
- path(r'{}/front/index.html'.format(schemaName), TemplateView.as_view(template_name='front/index.html')),
- path(r'', TemplateView.as_view(template_name='front/index.html')),
- ])
diff --git a/src/dj2/views.py b/src/dj2/views.py
deleted file mode 100644
index 895d88e..0000000
--- a/src/dj2/views.py
+++ /dev/null
@@ -1,963 +0,0 @@
-# coding:utf-8
-__author__ = "ila"
-import os,sys
-from django.http import JsonResponse, HttpResponse
-from django.apps import apps
-
-
-def index(request):
- if request.method in ["GET", "POST"]:
- msg = {"code": 200, "msg": "success", "data": []}
- print("=================>index")
- # allModels = apps.get_app_config('main').get_models()
- # for m in allModels:
- # print(m.__tablename__)
- # print(dir(m))
- # # for col in m._meta.fields:
- # # print("col name============>",col.name)
- # # print("col type============>",col.get_internal_type())
- # print(allModels)
-
- return JsonResponse(msg)
-
-
-def test(request, p1):
- if request.method in ["GET", "POST"]:
- msg = {"code": 200, "msg": "success", "data": []}
- print("=================>index ", p1)
- return JsonResponse(msg)
-
-def null(request,):
- if request.method in ["GET", "POST"]:
- msg = {"code": 200, "msg": "success", "data": []}
- return JsonResponse(msg)
-
-def check_suffix(filelName,path1):
- try:
- image_data = open(path1, "rb").read()
- except:
- image_data = "no file"
- if '.js' in filelName:
- return HttpResponse(image_data, content_type="application/javascript")
- elif '.jpg' in filelName or '.jpeg' in filelName or '.png' in filelName or '.gif' in filelName:
- return HttpResponse(image_data, content_type="image/png")
- elif '.css' in filelName:
- return HttpResponse(image_data, content_type="text/css")
- elif '.ttf' in filelName or '.woff' in filelName:
- return HttpResponse(image_data, content_type="application/octet-stream")
- elif '.mp4' in filelName:
- return HttpResponse(image_data, content_type="video/mp4")
- elif '.mp3' in filelName:
- return HttpResponse(image_data, content_type="audio/mp3")
- elif '.csv' in filelName:
- return HttpResponse(image_data, content_type="application/CSV")
- elif '.doc' in filelName:
- return HttpResponse(image_data, content_type="application/msword")
- elif '.docx' in filelName:
- return HttpResponse(image_data, content_type="application/vnd.openxmlformats-officedocument.wordprocessingml.document")
- elif '.xls' in filelName:
- return HttpResponse(image_data, content_type="application/vnd.ms-excel")
- elif '.xlsx' in filelName:
- return HttpResponse(image_data, content_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
- elif '.ppt' in filelName:
- return HttpResponse(image_data, content_type="application/vnd.ms-powerpoint")
- elif '.pptx' in filelName:
- return HttpResponse(image_data, content_type="application/vnd.openxmlformats-officedocument.presentationml.presentation")
- else:
- return HttpResponse(image_data, content_type="text/html")
-
-def admin_lib2(request, p1, p2):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/admin/lib/", p1, p2)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p2:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p2 or '.jpeg' in p2 or '.png' in p2 or '.gif' in p2:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p2:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p2 or '.woff' in p2:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p2:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p2:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def admin_lib3(request, p1, p2, p3):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/admin/lib/", p1, p2, p3)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p3:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p3 or '.jpeg' in p3 or '.png' in p3 or '.gif' in p3:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p3:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p3 or '.woff' in p3:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p3:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p3:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def admin_lib4(request, p1, p2, p3, p4):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/admin/lib/", p1, p2, p3, p4)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p4:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p4 or '.jpeg' in p4 or '.png' in p4 or '.gif' in p4:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p4:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p4 or '.woff' in p4:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p4:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p4:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def admin_page(request, p1):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/admin/page/", p1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p1:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p1 or '.jpeg' in p1 or '.png' in p1 or '.gif' in p1:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p1:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p1 or '.woff' in p1:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p1:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p1:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def admin_page2(request, p1, p2):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/admin/page/", p1, p2)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p2:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p2 or '.jpeg' in p2 or '.png' in p2 or '.gif' in p2:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p2:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p2 or '.woff' in p2:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p2:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p2:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def admin_pages(request, p1):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/admin/pages/", p1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p1:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p1 or '.jpeg' in p1 or '.png' in p1 or '.gif' in p1:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p1:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p1 or '.woff' in p1:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p1:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p1:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def admin_pages2(request, p1, p2):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/admin/pages/", p1, p2)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
-
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p2:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p2 or '.jpeg' in p2 or '.png' in p2 or '.gif' in p2:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p2:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p2 or '.woff' in p2:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p2:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p2:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def admin_file1(request, p1):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/admin/", p1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
-
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p1:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p1 or '.jpeg' in p1 or '.png' in p1 or '.gif' in p1:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p1:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p1 or '.woff' in p1:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p1:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p1:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def admin_file2(request, p1, p2):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/admin/", p1, p2)
- if not os.path.isfile(path1):
- path1 = os.path.join(os.getcwd(), "templates/front/admin/dist/", p1, p2)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p2:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p2 or '.jpeg' in p2 or '.png' in p2 or '.gif' in p2:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p2:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p2 or '.woff' in p2:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p2:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p2:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def admin_file3(request, p1, p2, p3):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/admin/", p1, p2, p3)
-
- if not os.path.isfile(path1):
- path1 = os.path.join(os.getcwd(), "templates/front/admin/dist/", p1, p2,p3)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p3:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p3 or '.jpeg' in p3 or '.png' in p3 or '.gif' in p3:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p3:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p3 or '.woff' in p3:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p3:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p3:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def admin_file4(request, p1, p2, p3, p4):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/admin/", p1, p2, p3, p4)
- if not os.path.isfile(path1):
- path1 = os.path.join(os.getcwd(), "templates/front/admin/dist/", p1, p2,p3,p4)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p4:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p4 or '.jpeg' in p4 or '.png' in p4 or '.gif' in p4:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p4:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p4 or '.woff' in p4:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p4:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p4:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-def front_pages(request, p1):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/pages/", p1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p1:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p1 or '.jpeg' in p1 or '.png' in p1 or '.gif' in p1:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p1:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p1 or '.woff' in p1:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p1:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p1:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def front_pages2(request, p1, p2):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/pages/", p1, p2)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
-
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p2:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p2 or '.jpeg' in p2 or '.png' in p2 or '.gif' in p2:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p2:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p2 or '.woff' in p2:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p2:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p2:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def layui1(request, p1):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/layui/", p1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p1:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p1 or '.jpeg' in p1 or '.png' in p1 or '.gif' in p1:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p1:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p1 or '.woff' in p1:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p1:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p1:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def layui2(request, p1, p2):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/layui/", p1, p2)
- print("layui2 path1========================>",path1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p2:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p2 or '.jpeg' in p2 or '.png' in p2 or '.gif' in p2:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p2:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p2 or '.woff' in p2:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p2:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p2:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def layui3(request, p1, p2, p3):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/layui/", p1, p2, p3)
- print("layui3 path1========================>",path1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- #
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p3:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p3 or '.jpeg' in p3 or '.png' in p3 or '.gif' in p3:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p3:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p3 or '.woff' in p3:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p3:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p3:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def layui4(request, p1, p2, p3, p4):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/layui/", p1, p2, p3, p4)
- print("layui4 path1========================>",path1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p4:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p4 or '.jpeg' in p4 or '.png' in p4 or '.gif' in p4:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p4:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p4 or '.woff' in p4:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p4:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p4:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def pages1(request, p1):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/pages/", p1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
-
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p1:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p1 or '.jpeg' in p1 or '.png' in p1 or '.gif' in p1:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p1:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p1 or '.woff' in p1:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p1:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p1:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def pages2(request, p1, p2):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/pages/", p1, p2)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
-
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p2:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p2 or '.jpeg' in p2 or '.png' in p2 or '.gif' in p2:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p2:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p2 or '.woff' in p2:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p2:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p2:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def front_file1(request, p1):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/", p1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
-
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p1:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p1 or '.jpeg' in p1 or '.png' in p1 or '.gif' in p1:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p1:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p1 or '.woff' in p1:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p1:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p1:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def front_file2(request, p1, p2):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/", p1, p2)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
-
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p2:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p2 or '.jpeg' in p2 or '.png' in p2 or '.gif' in p2:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p2:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p2 or '.woff' in p2:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p2:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p2:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-def schema_front1(request, p1):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/", p1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p1:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p1 or '.jpeg' in p1 or '.png' in p1 or '.gif' in p1:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p1:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p1 or '.woff' in p1:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p1:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p1:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def schema_front2(request, p1, p2):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/", p1, p2)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
-
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p2:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p2 or '.jpeg' in p2 or '.png' in p2 or '.gif' in p2:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p2:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p2 or '.woff' in p2:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p2:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p2:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def schema_front3(request, p1, p2, p3):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/", p1, p2, p3)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p3:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p3 or '.jpeg' in p3 or '.png' in p3 or '.gif' in p3:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p3:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p3 or '.woff' in p3:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p3:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p3:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def schema_front4(request, p1, p2, p3, p4):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/", p1, p2, p3, p4)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
-
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p4:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p4 or '.jpeg' in p4 or '.png' in p4 or '.gif' in p4:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p4:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p4 or '.woff' in p4:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p4:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p4:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-def assets1(request, p1):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/assets/", p1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
-
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p1:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p1 or '.jpeg' in p1 or '.png' in p1 or '.gif' in p1:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p1:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p1 or '.woff' in p1:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p1:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p1:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # elif '.map' in p1:
- # return JsonResponse({})
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def assets2(request, p1, p2):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/assets/", p1, p2)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p2:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p2 or '.jpeg' in p2 or '.png' in p2 or '.gif' in p2:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p2:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p2 or '.woff' in p2:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p2:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p2:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # elif '.map' in p2:
- # return JsonResponse({})
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def assets3(request, p1, p2, p3):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/assets/", p1, p2, p3)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p3:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p3 or '.jpeg' in p3 or '.png' in p3 or '.gif' in p3:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p3:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p3 or '.woff' in p3:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p3:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p3:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # elif '.map' in p3:
- # return JsonResponse({})
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-
-def assets4(request, p1, p2, p3, p4):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/assets/", p1, p2, p3, p4)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p4:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p4 or '.jpeg' in p4 or '.png' in p4 or '.gif' in p4:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p4:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p4 or '.woff' in p4:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p4:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p4:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # elif '.map' in p4:
- # return JsonResponse({})
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-def css1(request, p1):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/css/", p1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
-
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p1:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p1 or '.jpeg' in p1 or '.png' in p1 or '.gif' in p1:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p1:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p1 or '.woff' in p1:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p1:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p1:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-def js1(request, p1):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/js/", p1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
-
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p1:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p1 or '.jpeg' in p1 or '.png' in p1 or '.gif' in p1:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p1:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p1 or '.woff' in p1:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p1:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p1:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-
-def img1(request, p1):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/img/", p1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
-
- # try:
- # image_data = open(path1, "rb").read()
- # except:
- # image_data="no file"
- # if '.js' in p1:
- # return HttpResponse(image_data, content_type="application/javascript")
- # elif '.jpg' in p1 or '.jpeg' in p1 or '.png' in p1 or '.gif' in p1:
- # return HttpResponse(image_data, content_type="image/png")
- # elif '.css' in p1:
- # return HttpResponse(image_data, content_type="text/css")
- # elif '.ttf' in p1 or '.woff' in p1:
- # return HttpResponse(image_data, content_type="application/octet-stream")
- # elif '.mp4' in p1:
- # return HttpResponse(image_data, content_type="video/mp4")
- # elif '.mp3' in p1:
- # return HttpResponse(image_data, content_type="audio/mp3")
- # else:
- # return HttpResponse(image_data, content_type="text/html")
-def front_modules(request, p1):
- if request.method in ["GET", "POST"]:
- fullPath = request.get_full_path()
- print("{}=============>".format(sys._getframe().f_code.co_name), fullPath)
- path1 = os.path.join(os.getcwd(), "templates/front/modules/", p1)
-
- return check_suffix(eval(eval(sys._getframe().f_code.co_name).__code__.co_varnames[-3]),path1)
\ No newline at end of file
diff --git a/src/dj2/wsgi.py b/src/dj2/wsgi.py
deleted file mode 100644
index e41adc2..0000000
--- a/src/dj2/wsgi.py
+++ /dev/null
@@ -1,16 +0,0 @@
-"""
-WSGI config for dj2 project.
-
-It exposes the WSGI callable as a module-level variable named ``application``.
-
-For more information on this file, see
-https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/
-"""
-
-import os
-
-from django.core.wsgi import get_wsgi_application
-
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dj2.settings")
-
-application = get_wsgi_application()
diff --git a/src/init.py b/src/init.py
deleted file mode 100644
index 8878ab1..0000000
--- a/src/init.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# coding:utf-8
-# author:ila
-import click,py_compile,os
-from configparser import ConfigParser
-from util.configread import config_read
-from util.sqlinit import Create
-@click.group()
-def sub():
- pass
-
-
-@click.command()
-def initdb(ini="config.ini"):
- dbtype, host, port, user, passwd, dbName, charset = config_read(ini)
- if dbtype == 'mysql':
- cm = Create(dbtype, host, port, user, passwd, dbName, charset)
- cm.create_db("CREATE DATABASE IF NOT EXISTS `{}` /*!40100 DEFAULT CHARACTER SET utf8 */ ;".format(dbName))
-
- cm.conn_close()
- elif dbtype == 'mssql':
- cm = Create(dbtype, host, port, user, passwd, dbName, charset)
- cm.create_db("CREATE DATABASE IF NOT EXISTS `{}` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;".format(dbName))
-
- cm.conn_close()
- else:
- print('请修改当前面目录下的config.ini文件')
-
-@click.command()
-def initsql(ini="config.ini"):
- dbtype, host, port, user, passwd, dbName, charset = config_read(ini)
- if dbtype == 'mysql':
- cm = Create(dbtype, host, port, user, passwd, dbName, charset)
- cm.create_db("CREATE DATABASE IF NOT EXISTS `{}` /*!40100 DEFAULT CHARACTER SET utf8 */ ;".format(dbName))
- with open("./db/mysql.sql", encoding="utf8") as f:
- createsql = f.read()
- createsql = "DROP TABLE" + createsql.split('DROP TABLE', 1)[-1]
- cm.create_tables(createsql.split(';')[:-1])
- cm.conn_close()
- elif dbtype == 'mssql':
- cm = Create(dbtype, host, port, user, passwd, dbName, charset)
- cm.create_db("CREATE DATABASE IF NOT EXISTS `{}` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;".format(dbName))
- with open("./db/mssql.sql", encoding="utf8") as f:
- createsql = f.read()
- createsql = "DROP TABLE" + createsql.split('DROP TABLE', 1)[-1]
- cm.create_tables(createsql.split(';')[:-1])
- cm.conn_close()
- else:
- print('请修改当前面目录下的config.ini文件')
-
-sub.add_command(initdb,"initdb")
-sub.add_command(initsql,"initsql")
-if __name__ == "__main__":
- sub()
diff --git a/src/manage.py b/src/manage.py
deleted file mode 100644
index 9b3ac03..0000000
--- a/src/manage.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python
-import os
-import sys
-
-if __name__ == "__main__":
- os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dj2.settings")
- try:
- from django.core.management import execute_from_command_line
- except ImportError as exc:
- raise ImportError(
- "Couldn't import Django. Are you sure it's installed and "
- "available on your PYTHONPATH environment variable? Did you "
- "forget to activate a virtual environment?"
- ) from exc
- execute_from_command_line(sys.argv)
diff --git a/src/requirements.txt b/src/requirements.txt
deleted file mode 100644
index 412f2a2..0000000
--- a/src/requirements.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-django==2.0
-django-threadlocals
-pymysql
-click
-requests
\ No newline at end of file
diff --git a/src/templates/front/1660454654609.png b/src/templates/front/1660454654609.png
deleted file mode 100644
index 070c0a680688879a535177bf70401bc28653ccd2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 340392
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