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

[复制链接]
ling332601 发表于 2017-12-30 18:02:22 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
xadmin安装3 m& r8 s/ p! a% m( U6 t
由于安装时需要依赖包并且暂时不支持py3等原因,直接pip install的方法很容易就狗带了。  b, @+ K; A# N, m" M0 T) B7 ?; M
说一下我在网上找到的安装方式,在GitHub上有这个项目的开源代码,并且还有很多个版本可以选择。) h" o) @' o: m- J3 n+ P
* ?+ C. G8 D5 t7 i) T& r, F
克隆一份,clone地址:xadmin,新建一个空白的README.rst代替之前的文件。
" f4 T5 c, S: T" B# {" |' P
; I1 ], V  X* b  U, U/ z" {cmd进入dos,执行python setup.py install,出现gbk解码问题,返回上一步确定README.rst是一个空白文件。这样安装xadmin就完成了。
9 t3 |4 F- U- M5 S4 L: V狸猫换太子
; H) D* ^# l8 U. d, b( H" k算了还是叫太子换狸猫吧,admin文档太少用起来还不如自己写的后台管理,用xadmin更换django自带的admin,安装xadmin的过程与写一个app分支的过程一致。这里我简述一下步骤。小编推荐大家加一下这个群:103456743这个群里好几千人了!大家遇到啥问题都会在里面交流!而且免费分享零基础入门料资料web开发 爬虫资料一整套!是个非常好的学习交流地方!也有程序员大神给大家热心解答各种问题!很快满员了。欲进从速哦!各种PDF等你来下载!全部都是免费的哦!只为帮助大家快速入门,所以小编在群里等你们过来一起交流学习呢!1 T' @5 G: K4 k# \, [* K" V
第一步,创建一个文件包放置xadmin的app,并且将app注册在settings.py文件中。; Z- X: s8 }) B) p
! D* ^2 ^& M, E

+ s, D7 }! V/ u; u2 f5 K: n+ |3 s, i% f

& J' e. Z7 U; Z# X& x* u/ g9 B1 G4 u2 q4 T$ r, L) n, R/ ]

! `; r) W, _. l; l后台管理的搭建非常迅速,也非常好用,django的后台管理是根据数据表的管理,所以适用于大多数情况,给我们开发带来了便利。
8 P: B7 ]) z  U登陆注册4 _2 [1 T# e4 q
为了使用django后台自带的认证与登陆,所以我们的用户表最好还是继承它的用户表比较好,这样我们登录认证和session写入django都帮我们做好了,所以别人做好的东西,当然是拿来用啦。
" I3 B8 ~0 h( C5 e8 N2 n
" Z8 {, X/ r& f5 L
2 a) W6 X8 d* w3 Z0 [所以我们需要重写user模型。# C. f( \% V# V4 f9 G) [
第一步,修改settings.py配置文件,覆盖默认的user模型:1 L. P! r* V' |9 `! H
AUTH_USER_MODEL = "users.UserInfo"
/ `/ A& {" L- X' ]5 \2 k衍生的model是继承了AbstractUser的,所以在写的过程中不要写与父类重复的字段(尤其是登陆字段)如果写重复了会导致在哪登陆都无法登陆的情况。/ s2 c* d( h* \( @' f
最后一步别忘了同步数据表。
0 i% b4 D2 S, @5 u+ g这里提一个映射模板的方法,我们可以从视图函数中返回,简洁的写法可以调用TemplateView模块:1 ^. y) K' m4 [8 H7 _5 j: j
. ~6 o( l. O& h% W; W. E

& `  w$ u" X4 p我们在模板中可以用name反向找到url,虽然as_view可以将模板直接当作视图函数,但是没办法写试图函数的逻辑处理,所以这种方式使用的并不多。! w# c! e. G" a; p; M
正式需要写登陆这样有业务处理逻辑的试图函数url指向view,毕竟django是MVC的框架。
4 |* n' \/ j9 {2 `' `6 a0 H; e关于登陆,django自己有一个后台的登陆系统,并且xadmin的登陆是它自己做的,你没有进行配置,我们登陆可以使用这个模块:
" M6 P9 m1 @( C' ?8 H: @4 G
# G/ C# E" ?# x避免auth的login方法与我们定义的视图函数名称重复,我们导入时更换函数名。
7 a, R2 `; K$ _+ i如果我们想要使用账号或者邮箱都可以登录,那么我们需要自定义auth方法。django允许我们在配置文件中增加一个变量完成自定义。
% A" r4 {# d3 A首先,更改配置文件,增加自定义变量:0 V, t8 f( k" A: [
AUTHENTICATION_BACKENDS = ('users.views.CustomBackend',)#所以我们还需要在试图函数下定义CustomBackend类然后在视图函数中重写ModelBackend的认证方法:2 ]9 K! }. \% }0 z9 v
; \  p0 b& Q$ e# c5 M
6 n! e6 V; ~$ o
<link rel="stylesheet" type="text/css" href="{% static 'css/reset.css' %}">验证码自动生成库:
* d, R+ _( T9 A- C( |django-simple-captcha文档:Using django-simple-captcha。
0 h2 @" a! F5 n( `项目GitHub地址:mbi/django-simple-captcha。& j4 |" J& B7 Y& S- Y* [

" o5 t, n  k0 \3 N' g0 C. V
- K' b9 q% }" @) g
/ d1 y: L2 c+ D3 e; C, F: G. s/ D, C第三步:同步数据库。
$ Q! B' q1 `  `3 `( ]' Z
  Z0 ~) Y) v$ _6 }6 q. N, f3 w/ S它在我们数据库建了一张表用来存放生成的随机码信息。7 b7 S" Z* m$ N
第四步:建立form自动认证。
! Y' \% v* w7 z, D% D/ r
7 O9 Z4 t, v: S" u# Z1 q7 r第六步,在前端自动生成验证码。
, o5 U0 t0 y4 E3 }, j# P
, |  w9 n0 W* t; A9 y! _: E) [9 S$ w7 E0 \: L3 x, i3 O6 a, @& h
可以说这个插件比我们之前手写的那个要好用一些。, c/ E) Q  S. v9 z

0 W9 N* w4 Y% ~根据此判定我们的验证码是否一致。7 O2 {7 f' i2 Q
注册激活
* R7 S0 s+ a' H; g+ [- R7 ?& O邮箱发送验证码
5 A6 h5 c, p+ F3 D, m/ U建一个新的app组件utils组件的新功能就是email_send。
' G: d9 u0 c& [1 c' I  Y" V  a
: k/ |$ `3 Y- y2 H( X, r2 T- G1 Z% o& g" s" A1 o* {( A

7 t/ }/ d2 z  I+ _& q
  o0 g  v3 J* p8 c* d5 n, t9 T+ \% m+ J* M0 x1 y
拿到链接以后需要注册。
, O/ @+ ]3 l$ E2 z- d
- e( A4 |1 l5 r" d- t2 n% X上传图片! s+ ^8 ^9 p0 p
upload地址:) c# b+ ]1 N3 m5 O, X
image = models.ImageField(upload_to='org/%Y/%m', verbose_name='封面图', max_length=100)配置文件中指定文件存储位置:
; f. n# G2 P$ L( A. `& l0 ZMEDIA_URL = '/static/media/'MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media/')模板中配置:
& U4 x( [$ ^2 D1 Y5 F% P" T<img width="200" height="120" class="scrollLoading" data-url="{{ MEDIA_URL }}{{ org.image }}"/>为了让这里的{{ MEDIA_URL}}生效(当然你可以使用手动地址/static/media/{{org.image}}),需要配置setting文件:8 v$ Q, M% ^) x) L

9 F: g& Q7 W$ b7 y/ d4 G$ }" h7 ?/ A
如有侵权请联系小编删除!
4 p1 t  l& M2 }: b5 x* P5 r

本帖子中包含更多资源

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

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