如果通过python3.6 + xadmin搭建一个超级牛逼的网站!大牛详解! ...

[复制链接]
ling332601 发表于 2017-12-30 18:02:22 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
xadmin安装
) n: U: c  o, `! i由于安装时需要依赖包并且暂时不支持py3等原因,直接pip install的方法很容易就狗带了。
  \, h4 \  e/ t说一下我在网上找到的安装方式,在GitHub上有这个项目的开源代码,并且还有很多个版本可以选择。
- F+ L. Q. c4 D* Q# A: {. @. i; p3 Y" q+ d
克隆一份,clone地址:xadmin,新建一个空白的README.rst代替之前的文件。1 |  E. b7 I+ [, l

  O5 m4 h. o, Q$ `: J% _1 |; Zcmd进入dos,执行python setup.py install,出现gbk解码问题,返回上一步确定README.rst是一个空白文件。这样安装xadmin就完成了。
: y1 f" v" ]$ V3 x狸猫换太子( I) B6 R+ ~) s; G
算了还是叫太子换狸猫吧,admin文档太少用起来还不如自己写的后台管理,用xadmin更换django自带的admin,安装xadmin的过程与写一个app分支的过程一致。这里我简述一下步骤。小编推荐大家加一下这个群:103456743这个群里好几千人了!大家遇到啥问题都会在里面交流!而且免费分享零基础入门料资料web开发 爬虫资料一整套!是个非常好的学习交流地方!也有程序员大神给大家热心解答各种问题!很快满员了。欲进从速哦!各种PDF等你来下载!全部都是免费的哦!只为帮助大家快速入门,所以小编在群里等你们过来一起交流学习呢!0 t. D4 f6 V7 y6 R3 R  u) v
第一步,创建一个文件包放置xadmin的app,并且将app注册在settings.py文件中。
( h" r! d% T6 d2 ~. s: B" A) T; x: y; ~- d! e2 Z
1 I/ j8 P* ~  ~) K) T3 ~
- ]1 m2 Y, [; R9 }

8 r% `9 M: r  n9 X, u. d
  Q3 O: p: D) V8 `; h7 X7 p
6 t1 V+ j1 E. y) @后台管理的搭建非常迅速,也非常好用,django的后台管理是根据数据表的管理,所以适用于大多数情况,给我们开发带来了便利。) [/ v3 I' y' {1 K. A+ l
登陆注册; M1 x6 D9 t2 k2 P# }! t
为了使用django后台自带的认证与登陆,所以我们的用户表最好还是继承它的用户表比较好,这样我们登录认证和session写入django都帮我们做好了,所以别人做好的东西,当然是拿来用啦。) ^+ s9 e4 E3 ^$ i4 T# a

& q; J6 r5 N  H6 {1 W$ t/ K; f% R& W% s. b/ o
所以我们需要重写user模型。1 c* A# J) R2 |+ u4 g
第一步,修改settings.py配置文件,覆盖默认的user模型:
" a/ R' R5 I1 Q" o+ ]" }AUTH_USER_MODEL = "users.UserInfo"
( J6 X+ ?0 l# \衍生的model是继承了AbstractUser的,所以在写的过程中不要写与父类重复的字段(尤其是登陆字段)如果写重复了会导致在哪登陆都无法登陆的情况。4 o5 A% k- Z) r7 a& S- O- W4 l
最后一步别忘了同步数据表。
8 L7 ]" B8 s) h8 `  l3 J这里提一个映射模板的方法,我们可以从视图函数中返回,简洁的写法可以调用TemplateView模块:
$ B* R5 w% P; P/ j
! D1 m+ l9 ^, R. i, P
7 G7 }$ ~* k1 g5 O4 n7 J我们在模板中可以用name反向找到url,虽然as_view可以将模板直接当作视图函数,但是没办法写试图函数的逻辑处理,所以这种方式使用的并不多。
" h. H: v2 m% `2 A$ V0 H正式需要写登陆这样有业务处理逻辑的试图函数url指向view,毕竟django是MVC的框架。
. z% s2 V; f; `. i2 U关于登陆,django自己有一个后台的登陆系统,并且xadmin的登陆是它自己做的,你没有进行配置,我们登陆可以使用这个模块:
+ A+ m- _  M( @% V$ g8 p5 j9 i4 a8 Y) r5 S; u
避免auth的login方法与我们定义的视图函数名称重复,我们导入时更换函数名。
% f; F( ]/ j! N7 Q如果我们想要使用账号或者邮箱都可以登录,那么我们需要自定义auth方法。django允许我们在配置文件中增加一个变量完成自定义。
: G* A2 E* E( {" E/ f首先,更改配置文件,增加自定义变量:0 O4 Y0 K# k# M/ F: O" ]8 U8 v
AUTHENTICATION_BACKENDS = ('users.views.CustomBackend',)#所以我们还需要在试图函数下定义CustomBackend类然后在视图函数中重写ModelBackend的认证方法:" Q" K  C- V6 t% L' Q

0 d3 `% a+ k  q- ~6 _, S; ~
  s7 |  P) e- ?$ K9 k1 ~9 }2 p) V<link rel="stylesheet" type="text/css" href="{% static 'css/reset.css' %}">验证码自动生成库:( a3 h0 c( U  D1 q
django-simple-captcha文档:Using django-simple-captcha。# m" `5 V9 @$ M7 H2 y
项目GitHub地址:mbi/django-simple-captcha。: x7 U, Y; r: p0 |

6 [# l7 p. {; l. {/ [
3 D6 t. Z* z& l& U' ?. L+ w
  q& C8 K% E" u0 `* ]* H) i% i第三步:同步数据库。
/ C2 [- h1 I3 d: ~# m: |# |3 m, ?( f) w, ?5 r' B; B
它在我们数据库建了一张表用来存放生成的随机码信息。' K) s, K" Q  k6 j
第四步:建立form自动认证。& ?  H  X- p; }

) N; y7 I# U  D7 F1 S第六步,在前端自动生成验证码。
, o* W- b( }3 K6 P' \) O
. [, T4 Z( d; [* S) P, ]9 _5 T0 c  K; W) r) m7 O  J  i# [, C% m
可以说这个插件比我们之前手写的那个要好用一些。: s  |8 \- k9 k' T; c

4 T+ ^: o8 M% C* X: F, a! b根据此判定我们的验证码是否一致。
2 O) _8 C) m! z3 m* u7 h, B: q8 i注册激活$ O; j! P3 w: b: F
邮箱发送验证码0 ?8 d, Z  F+ L! d7 `) d& u
建一个新的app组件utils组件的新功能就是email_send。! i8 H. X# o0 b  ?/ [2 ^
- j+ d( Y+ ]2 M( f
# V' M: W8 U) a6 o: Y4 C

( ]% o3 p8 l" E+ D
+ f+ F* B6 x+ ?9 s1 x
7 b$ X9 D* t! S3 {拿到链接以后需要注册。. B# ^9 U: G' _# e, I) r6 w

( [! v% ]% a; S: l上传图片
, x; E* q5 u$ w5 }  q* Aupload地址:
* Q; N" y" W# H. H( \; Jimage = models.ImageField(upload_to='org/%Y/%m', verbose_name='封面图', max_length=100)配置文件中指定文件存储位置:
6 ^1 v7 s# T  q! x) m4 l8 fMEDIA_URL = '/static/media/'MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media/')模板中配置:1 b5 y6 l# n, s
<img width="200" height="120" class="scrollLoading" data-url="{{ MEDIA_URL }}{{ org.image }}"/>为了让这里的{{ MEDIA_URL}}生效(当然你可以使用手动地址/static/media/{{org.image}}),需要配置setting文件:- E5 g1 O' G7 \( q6 ~% W
- r  P+ j2 z3 [0 @+ j. _$ I

7 k( C4 g2 {2 E) c3 z4 n, C: ]1 V如有侵权请联系小编删除!
  ?, ^# m  [  c$ H

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

精彩评论2

sosoyoyo 发表于 2017-12-30 18:03:03 | 显示全部楼层
用Celery模块来做邮件发送任务更好[机智]
回复

使用道具 举报

yiyee123 发表于 2017-12-30 19:02:26 | 显示全部楼层
转发了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
推荐阅读更多+
阅读排行更多+
用心服务创业者
0851-88611148
周一至周五 9:00-18:00
意见反馈:admin@0851life.com

扫一扫关注我们

Powered by 童码少儿编程 X3.4© 2001-2013 0851life Inc.|网站地图