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

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

) U+ i- D0 k6 c! a' E1 d: z后台管理的搭建非常迅速,也非常好用,django的后台管理是根据数据表的管理,所以适用于大多数情况,给我们开发带来了便利。% d% w- w9 q, X! c
登陆注册* X5 Q+ G& q& }& E, j4 z2 Z
为了使用django后台自带的认证与登陆,所以我们的用户表最好还是继承它的用户表比较好,这样我们登录认证和session写入django都帮我们做好了,所以别人做好的东西,当然是拿来用啦。
1 t, V. n/ k5 R  j! v& y
! }: t& H$ I7 E  b6 c& P
( v5 G9 f+ J3 y所以我们需要重写user模型。
, z- q& L2 C6 K' a1 b第一步,修改settings.py配置文件,覆盖默认的user模型:
" {( ^( a$ R! G# JAUTH_USER_MODEL = "users.UserInfo"
) H# R5 f4 W, c- p; _/ b8 \衍生的model是继承了AbstractUser的,所以在写的过程中不要写与父类重复的字段(尤其是登陆字段)如果写重复了会导致在哪登陆都无法登陆的情况。
0 D1 m/ F6 q( y: I/ ~. ]4 J# r1 U最后一步别忘了同步数据表。
' R1 z' F( ?0 q) y. B+ e% Q; F% t这里提一个映射模板的方法,我们可以从视图函数中返回,简洁的写法可以调用TemplateView模块:
0 U7 a, _# L* ^! P  q) \+ N
$ G' m( S  D) a: d0 i) J3 [
( g+ F1 n0 T* U7 H! ?$ U2 l我们在模板中可以用name反向找到url,虽然as_view可以将模板直接当作视图函数,但是没办法写试图函数的逻辑处理,所以这种方式使用的并不多。/ `* q! y# |# o' o
正式需要写登陆这样有业务处理逻辑的试图函数url指向view,毕竟django是MVC的框架。0 a0 j6 s% [1 ?: ~! G
关于登陆,django自己有一个后台的登陆系统,并且xadmin的登陆是它自己做的,你没有进行配置,我们登陆可以使用这个模块:
5 E0 G; B0 r( j. ^4 D
# ?/ Q. }. {- m: L6 O避免auth的login方法与我们定义的视图函数名称重复,我们导入时更换函数名。
- ]3 I6 \5 [* b如果我们想要使用账号或者邮箱都可以登录,那么我们需要自定义auth方法。django允许我们在配置文件中增加一个变量完成自定义。( V1 X% Y1 `# r
首先,更改配置文件,增加自定义变量:0 H" X5 u! i1 b1 v
AUTHENTICATION_BACKENDS = ('users.views.CustomBackend',)#所以我们还需要在试图函数下定义CustomBackend类然后在视图函数中重写ModelBackend的认证方法:
! j" ^5 a+ F  K& N4 v3 C6 z5 ^" \& g; v5 |# c$ }7 S
. }1 N+ L: I8 s2 u9 |( B
<link rel="stylesheet" type="text/css" href="{% static 'css/reset.css' %}">验证码自动生成库:) A' n- V6 K' E8 o5 d
django-simple-captcha文档:Using django-simple-captcha。+ Y# S, ~' \9 L$ c
项目GitHub地址:mbi/django-simple-captcha。
6 [7 U& H& h2 g; [
! b6 F  X. T# H$ ~% m2 q, R) v+ A0 _+ `; H
2 n' }# L5 ]5 f2 X
第三步:同步数据库。9 I1 Y2 x0 y8 M, K
2 j% V5 E1 o0 s; O* {. _
它在我们数据库建了一张表用来存放生成的随机码信息。1 d/ r; W  `' ]% m- @! e1 R
第四步:建立form自动认证。1 a6 _! F: X* c3 m/ l" f+ P5 A! O; z
9 [. f  B9 A: u% t# Y
第六步,在前端自动生成验证码。9 n- q+ S0 f3 o1 u+ @

8 T$ s5 O+ ?: C. w/ {
* q3 |0 _" F8 ^8 i5 k6 L, t可以说这个插件比我们之前手写的那个要好用一些。
! r# n" N3 m3 y: e5 J
! Y# x6 ^# p% ^5 q- Z根据此判定我们的验证码是否一致。7 v0 f% j- f9 N$ u
注册激活
' f/ O; E0 a8 H$ D邮箱发送验证码! Q6 p8 L9 o2 `7 z' c$ e
建一个新的app组件utils组件的新功能就是email_send。# i% d0 N, R7 y8 {
" ?1 b- Z; @& O) `# ~

! u4 H; P- T% [/ Z( X( m: G: X( l' m: q; A- A$ N! f/ R1 U

4 n  t# X) V5 k. ^; N) S' {6 K
0 g1 \0 v+ [, N4 B' k9 ^6 L; V拿到链接以后需要注册。
; O+ t7 @# ?  M7 a+ b6 @. A% \+ {% ?; [4 O( [
上传图片
( h! b3 W8 h$ n. M9 Nupload地址:& q1 Z1 r+ R$ g: }
image = models.ImageField(upload_to='org/%Y/%m', verbose_name='封面图', max_length=100)配置文件中指定文件存储位置:
; I8 O( P2 v0 R5 d$ w5 nMEDIA_URL = '/static/media/'MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media/')模板中配置:
' f5 j. o, h% p/ E7 y<img width="200" height="120" class="scrollLoading" data-url="{{ MEDIA_URL }}{{ org.image }}"/>为了让这里的{{ MEDIA_URL}}生效(当然你可以使用手动地址/static/media/{{org.image}}),需要配置setting文件:, U# q* r; R6 W9 u* w3 h; e

$ j3 l/ E4 }7 ^& z6 A/ r- ]/ E. ~4 ?9 U5 [& y6 S
如有侵权请联系小编删除!) l$ w6 e% d5 [% ]

本帖子中包含更多资源

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

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