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

[复制链接]
ling332601 发表于 2017-12-30 18:02:22 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
xadmin安装
% J4 C3 ?! d+ @; W1 J. B& n由于安装时需要依赖包并且暂时不支持py3等原因,直接pip install的方法很容易就狗带了。, p, y  ~. q' M: T. W, f+ w
说一下我在网上找到的安装方式,在GitHub上有这个项目的开源代码,并且还有很多个版本可以选择。% V* X5 u& X' g0 @

: c  \1 Z  J. j7 h克隆一份,clone地址:xadmin,新建一个空白的README.rst代替之前的文件。
0 v) C# n- P% m/ F; q9 F
- x" A! r. ^) |# {9 g6 _cmd进入dos,执行python setup.py install,出现gbk解码问题,返回上一步确定README.rst是一个空白文件。这样安装xadmin就完成了。! N. Z' q6 A/ i. n7 y" C2 d* \
狸猫换太子1 @* u7 y! A" J. O& E
算了还是叫太子换狸猫吧,admin文档太少用起来还不如自己写的后台管理,用xadmin更换django自带的admin,安装xadmin的过程与写一个app分支的过程一致。这里我简述一下步骤。小编推荐大家加一下这个群:103456743这个群里好几千人了!大家遇到啥问题都会在里面交流!而且免费分享零基础入门料资料web开发 爬虫资料一整套!是个非常好的学习交流地方!也有程序员大神给大家热心解答各种问题!很快满员了。欲进从速哦!各种PDF等你来下载!全部都是免费的哦!只为帮助大家快速入门,所以小编在群里等你们过来一起交流学习呢!
4 \/ C% X- U3 \( C第一步,创建一个文件包放置xadmin的app,并且将app注册在settings.py文件中。
# W, K' K9 E9 R+ T* V
  S/ p. J9 C' C6 j; v- C: w, e' r8 o1 G6 [% o0 r

8 M7 l3 q: K- `0 i  W
4 r, Y3 }, I6 k; R- q- k- f) ]
, P/ b/ e( S3 U: }4 u8 \: O
) F+ I1 J' x5 I% B% m后台管理的搭建非常迅速,也非常好用,django的后台管理是根据数据表的管理,所以适用于大多数情况,给我们开发带来了便利。" [$ [9 [) p  ^, {# a
登陆注册) U9 D( R/ e% G8 ]3 a) ?
为了使用django后台自带的认证与登陆,所以我们的用户表最好还是继承它的用户表比较好,这样我们登录认证和session写入django都帮我们做好了,所以别人做好的东西,当然是拿来用啦。
- W+ L' K( `1 j5 U7 I, k+ X2 u5 d) t: X

% t  l5 e% L0 Y  v! l所以我们需要重写user模型。
) @9 l! Q" J. L4 a9 _+ T2 F$ Z" j; f第一步,修改settings.py配置文件,覆盖默认的user模型:! @/ O6 R$ W3 A( z
AUTH_USER_MODEL = "users.UserInfo"3 S, ]# X' G( z2 X, }9 P
衍生的model是继承了AbstractUser的,所以在写的过程中不要写与父类重复的字段(尤其是登陆字段)如果写重复了会导致在哪登陆都无法登陆的情况。
7 N& B  `/ O2 H: l) b最后一步别忘了同步数据表。" {; f0 j1 X5 R% [6 F* J6 }* c# q
这里提一个映射模板的方法,我们可以从视图函数中返回,简洁的写法可以调用TemplateView模块:
' e9 R' X' ~; _$ g" ?3 o5 ?) o: p% t: t: i/ H$ b

6 ~# Y% H. E) S9 `我们在模板中可以用name反向找到url,虽然as_view可以将模板直接当作视图函数,但是没办法写试图函数的逻辑处理,所以这种方式使用的并不多。
; i& Y. C* G; ^! F3 c. z正式需要写登陆这样有业务处理逻辑的试图函数url指向view,毕竟django是MVC的框架。
* l# w9 l2 o5 C( H% D0 D关于登陆,django自己有一个后台的登陆系统,并且xadmin的登陆是它自己做的,你没有进行配置,我们登陆可以使用这个模块:7 ^" }+ Y0 [; K1 E
% W9 H2 q; u! k1 W5 H7 i9 w
避免auth的login方法与我们定义的视图函数名称重复,我们导入时更换函数名。* R( [/ f/ R9 ^5 o* n
如果我们想要使用账号或者邮箱都可以登录,那么我们需要自定义auth方法。django允许我们在配置文件中增加一个变量完成自定义。. O6 u7 q2 I0 \
首先,更改配置文件,增加自定义变量:
4 m0 i0 D$ J, F! s% Q; k& IAUTHENTICATION_BACKENDS = ('users.views.CustomBackend',)#所以我们还需要在试图函数下定义CustomBackend类然后在视图函数中重写ModelBackend的认证方法:& }. o; C. o8 C( m* {
0 D# |3 V/ ]/ f- N8 w

! }7 f9 a! n9 g" d5 X+ b4 J<link rel="stylesheet" type="text/css" href="{% static 'css/reset.css' %}">验证码自动生成库:% k% f" J3 w5 g! `
django-simple-captcha文档:Using django-simple-captcha。/ O5 B' t2 M! R! d7 K: p# T
项目GitHub地址:mbi/django-simple-captcha。
' ^. P: k; f5 z. m5 v& a* d& x1 \) s, R2 z+ Y6 w
8 ~% h  _# J( _$ L. [3 n; F9 A9 G" L

) k' b& w# F3 o8 P, D. O第三步:同步数据库。
) h7 j2 ]1 f, D. @* k0 g6 D, k
" \- b; }( W2 i它在我们数据库建了一张表用来存放生成的随机码信息。
1 I0 m& H# c' |9 C第四步:建立form自动认证。$ q2 `7 |9 M3 y  S8 {( r
4 q# a3 K  E+ }: @
第六步,在前端自动生成验证码。1 \4 n3 e7 N9 o
2 M: a6 M" C$ ?3 U

7 @5 \' X( ^5 v$ R  Z4 G6 V可以说这个插件比我们之前手写的那个要好用一些。& b0 l6 \: N5 W4 I+ o$ L! f# s2 p, P: c

  t+ F5 l$ Y8 N* h根据此判定我们的验证码是否一致。
& H/ H/ `; ^1 k: `+ U8 P( [8 j注册激活
) Q: p4 u# d# Z( s+ K1 A邮箱发送验证码
' x# X0 q- z) P' n$ j) y6 p建一个新的app组件utils组件的新功能就是email_send。7 \% g7 k7 b; [0 H: \1 [) ]

' H1 |, b& j# {- P3 r6 w6 t* j+ w; c1 c( K
1 Q, h  p: v* ^9 Z) v
2 b/ @8 E, o! F; }' r
4 M/ @& j3 I+ R2 W- O# J
拿到链接以后需要注册。
$ A  F: S8 z0 n. b
! K, |+ r* g( M! a; B上传图片
! h- ~5 P% O$ g0 H. y' Hupload地址:
, x# f: V8 W  u' x  ?+ Wimage = models.ImageField(upload_to='org/%Y/%m', verbose_name='封面图', max_length=100)配置文件中指定文件存储位置:7 @* D# _( N; W/ V  ]) Q, W$ E6 U
MEDIA_URL = '/static/media/'MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media/')模板中配置:/ r# W  X( c! a0 ?. D: n
<img width="200" height="120" class="scrollLoading" data-url="{{ MEDIA_URL }}{{ org.image }}"/>为了让这里的{{ MEDIA_URL}}生效(当然你可以使用手动地址/static/media/{{org.image}}),需要配置setting文件:3 a9 N7 B1 e6 C3 [
, B# g% d( Y' ?

* o/ ?2 z; d2 n如有侵权请联系小编删除!
. i) R- F. S% w3 P  a2 }1 }2 ]

本帖子中包含更多资源

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

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.|网站地图