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

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

$ \  j4 i! y& H0 s, N$ j1 m/ H8 \- F0 x- Z' g* J: \

$ e  C0 B3 A: J) n7 S" U8 y+ ~* a

7 W5 h" T) g+ j8 H9 m8 a8 @后台管理的搭建非常迅速,也非常好用,django的后台管理是根据数据表的管理,所以适用于大多数情况,给我们开发带来了便利。; {8 S. |) y- Y7 n' I8 w6 U8 D
登陆注册6 X% E1 O- E$ B, q4 T' q/ Y
为了使用django后台自带的认证与登陆,所以我们的用户表最好还是继承它的用户表比较好,这样我们登录认证和session写入django都帮我们做好了,所以别人做好的东西,当然是拿来用啦。8 |& q) Z" _7 k5 a6 Q% m
  E1 o: }  C6 c* |

! n- i1 e3 U4 G' q$ x% @所以我们需要重写user模型。- |# f5 k6 ?+ S/ w
第一步,修改settings.py配置文件,覆盖默认的user模型:
: G) s% J  O* a$ n  ?AUTH_USER_MODEL = "users.UserInfo"
* z  `$ I$ W4 Z9 {1 _$ x/ p! r6 E衍生的model是继承了AbstractUser的,所以在写的过程中不要写与父类重复的字段(尤其是登陆字段)如果写重复了会导致在哪登陆都无法登陆的情况。
" Z* ?; I. z- C- b# B3 k' R最后一步别忘了同步数据表。" z: A) U5 H1 {3 _% j$ ?/ E9 @* z. {
这里提一个映射模板的方法,我们可以从视图函数中返回,简洁的写法可以调用TemplateView模块:
- w1 c8 h% G" N! ~& y% f* a/ {8 n  n, p3 r

. v3 {; F5 U0 V4 z/ D  `. T1 V我们在模板中可以用name反向找到url,虽然as_view可以将模板直接当作视图函数,但是没办法写试图函数的逻辑处理,所以这种方式使用的并不多。  [. V0 D% z( V: k0 Z0 f, {7 `
正式需要写登陆这样有业务处理逻辑的试图函数url指向view,毕竟django是MVC的框架。
, {) D' O; V. P7 ~' J关于登陆,django自己有一个后台的登陆系统,并且xadmin的登陆是它自己做的,你没有进行配置,我们登陆可以使用这个模块:
+ o/ |* l7 {) |3 B9 w* u% A! W, m, Q9 P* A$ s, F' g
避免auth的login方法与我们定义的视图函数名称重复,我们导入时更换函数名。
- u+ o( \# x9 K  q如果我们想要使用账号或者邮箱都可以登录,那么我们需要自定义auth方法。django允许我们在配置文件中增加一个变量完成自定义。4 i+ S1 `: V( Z1 q4 \. ?& x: k& @( T9 `% t# F
首先,更改配置文件,增加自定义变量:: W% @% v  S! n+ f& M  A5 T
AUTHENTICATION_BACKENDS = ('users.views.CustomBackend',)#所以我们还需要在试图函数下定义CustomBackend类然后在视图函数中重写ModelBackend的认证方法:
4 V6 f4 ]8 r- e8 |; Q
' R- B. K9 E8 G
/ l. ]) M* z  x6 q<link rel="stylesheet" type="text/css" href="{% static 'css/reset.css' %}">验证码自动生成库:- {: n8 s  u1 O; n& W( D1 \
django-simple-captcha文档:Using django-simple-captcha。+ e( J' a2 I# ~+ A% H
项目GitHub地址:mbi/django-simple-captcha。2 f7 Y6 `# G+ o

& X: D$ {/ B. q8 B
! K: d$ u  D. f- X
8 Q0 x1 U0 ~: k' j第三步:同步数据库。" ~" A/ y2 t# o3 u4 G

, ~$ z% S- K% t9 G8 S" f它在我们数据库建了一张表用来存放生成的随机码信息。
! {8 _$ n6 L4 Q$ p5 a+ c& d* ?第四步:建立form自动认证。
( c9 h) T. c% m( V: M% m5 U. ?6 y8 @1 R: W& C! W" G, N
第六步,在前端自动生成验证码。- ~  i% u# p6 \: {+ B

2 p' z& T! b# c% S/ x& Y* Y' `
" L' ?$ I, c: r2 j9 P) t3 ?' Z& X可以说这个插件比我们之前手写的那个要好用一些。
% s) I1 q* T$ e8 U1 Z
/ d( o; ?9 i  Y8 e0 X% @9 x根据此判定我们的验证码是否一致。
6 L+ l8 G2 u$ {: t注册激活
1 a) W8 |/ g; M/ K邮箱发送验证码. ^! }' Q5 P& a9 K( {
建一个新的app组件utils组件的新功能就是email_send。7 g( B! e- {6 V' Q% d& N' h0 Y

) G5 U4 H# t# @" {' ]
5 z3 t  Q- l% g3 U
" K/ a& M( M6 k
. x+ j! B1 K4 D! D4 n6 G$ j0 ^7 c' N9 z1 `
拿到链接以后需要注册。8 C3 s# C0 l- M7 T7 a) {

1 s- C7 W3 ^" c+ D3 ?: _+ h/ V: Q8 I上传图片
! |2 @- B( _0 xupload地址:
2 n! ?( N, w; `( iimage = models.ImageField(upload_to='org/%Y/%m', verbose_name='封面图', max_length=100)配置文件中指定文件存储位置:
* z% T5 L9 G; M4 ]& w: }# MMEDIA_URL = '/static/media/'MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media/')模板中配置:6 e! C) j* J' e- p/ N" O
<img width="200" height="120" class="scrollLoading" data-url="{{ MEDIA_URL }}{{ org.image }}"/>为了让这里的{{ MEDIA_URL}}生效(当然你可以使用手动地址/static/media/{{org.image}}),需要配置setting文件:, J7 n( r/ ~9 x

1 I9 Z) o2 P7 `, I. H6 ]8 s. ]3 X, T+ Z: q
如有侵权请联系小编删除!5 a' u6 A  z8 s6 t* M

本帖子中包含更多资源

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

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