python线上教育平台_django 线上教育平台开发记录

1、环境搭建

2、新建项目

1)、首先通过 django-admin 新建一个项目,(例如项目名为mxonline)

django-admin startproject mxonline

运行后会出现一个 mxonline的文件夹,这就是整个项目的文件夹,文件夹下的文件结构为:

2)、进入到 mxonline下的settings.py 文件配置数据库,我自己是这样配置的

DATABASES ={'default': {'ENGINE': 'django.db.backends.mysql','NAME': "mxonline",'USER':'root','PASSWORD':'147896321','HOST':'localhost','PORT':'3306',

}

}

然后通过 migrate命令在数据库中会生成初始的数据表

python manage.py makemigrations

python manage.py migrate

注意:如果makemigrations出错,一般都是数据库配置错误,请仔细检查

3、第一个django页面

运行django

python manage.py runserver

然后在浏览器打开 http://127.0.0.1:8000/,就可以看到我么第一个django页面了

4、app的model设计

1)新建一个叫users的app,新建完成后,会出现一个和mxonline同级的users文件夹,这就是我们的users 的app

python manage.py startapp users

2)设计user的model(users/model.py)

# -*- coding: utf-8 -*-from django.db import modelsfrom django.contrib.auth.models importAbstractUserfrom django.utils.encoding importpython_2_unicode_compatible

python_2_unicode_compatibleclassUserProfile(AbstractUser):

nickname= models.CharField(max_length=16, verbose_name=u'昵称', default="")

birday= models.DateField(verbose_name=u'生日', null=True, blank=True)

gender= models.CharField(choices=((‘male’,u'男'),('female',u'女')), default="female")

address= models.CharField(max_length=64, default="")

mobile= models.CharField(max_length=11, null=True, blank=True)

image= mdoels.ImageField(upload_to="image/%Y/%m", default = u'image/default.png', max_length=64)class =Meta:

verbose_name= "用户信息"verbose_name_plural=verbose_namedef __str__(self):return self.username

#other models

...

3)注册 app,并设置 AUTH_USER_MODEL

在settings.py中的 INSTALLED_APP中添加 users

INSTALLED_APPS =['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','users',

]

AUTH_USER_MODEL = "users.UserProfile"

4)因为models中用到了 ImageField,需要安装pillow

进入虚拟环境,安装pillow

pip install pillow

5)同步user表到数据库

python manage.py makemigrations

python manage.py migrate

5、如何将多个app放到一个文件夹apps(apps所在位置为项目根目录)下:

在settings.py文件中,insert apps路径即可

首先

import sys

然后在 BASE_DIR 后面添加apps

sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))

6、创建后台admin的用户

python manage.py createsuperuser admin

7、settings.py相关设置

LANGUAGE_CODE = 'zh-hans' #修改django后台为中文

TIME_ZONE= 'Asia/Shanghai' #修改时区

USE_TZ= False #本地时间,True为国际时间

8、xadmin(django最好使用1.9.8的版本,pip install django=1.9.8,当然自动安装很简单)

1)settings.py修改

pip install xadmin

修改settings.py中的配置

将 xadmin 和 crispy_forms(注意这里的-改为_) 加入到INSTALLED_APPS中

2)项目urls.py的修改

#from django.contrib import admin

importxadmin

urlpatterns=[#url(r'^admin/', admin.site.urls),

url(r'^xadmin/', xadmin.site.urls),

]

9、手动安装 xadmin

1)、下载xadmin源码,xadmin的源码是保存在github上的,在github首页进行搜索,然后下载到本地

2)、新建extra_apps(第三方app)文件夹(与apps文件夹同级),并在该文件夹下新建__init__.py文件(标识为一个可被调用的包)

然后打开xadmin的源码,将里面的xadmin目录复制到extra_apps文件夹下

3)、最后在settings.py文件中将extra_apps添加到项目路径

sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))

注意:本人在手动安装后运行项目时,出现了下面的错误

from future.utils importiteritems

ImportError: No module named future.utils

通过网上查询,在github上下载了future相关代码

然后复制到项目对应虚拟环境的目录下

我自己对应的目录为:C:\Users\Administrator\Envs\mxonline\Lib\site-packages\

再次运行项目,又出现ImportError: No module named six 的错误,然后可以通过pip install six的方式解决

最后, 同步xadmin相关数据表到数据库

python manage.py makemigrations

python manage.py migrate

项目终于成功启动!!!

10、django邮箱验证登录的实现方式

views.py文件中,在登录函数上面重写CustomBackend类:

from django.contrib.auth.backends importModelBackendfrom django.db.models importQfrom .models importUserProfileclassCustomBackend(ModelBackend):def authenticate(self, username=None, password=None, **kwargs):try:

user= UserProfile.objects.get(Q(username=username)|Q(email=username))ifuser.check_password(password):returnuserexceptException as e:return None

然后在settings.py中添加:

AUTHENTICATION_BACKENDS =('users.views.CustomBackend',

)

11、Django验证码 django-simple-captcha 的使用

1)、安装和配置

通过pip install 快捷安装

pip install django-simple-captcha

将captcha添加到settings.py文件中的 INSTALLED_APPS中

同步响应的配置到数据库中(同步后数据库会新建一个名为captcha_captchastore的数据表)

python manage.py migrate

最后在项目的urls.py文件中添加:

urlpatterns += patterns('',

url(r'^captcha/', include('captcha.urls')),

)

2)、添加到表单并在视图函数或试图类验证

添加到表单

classRegisterForm(forms.Form):

password= forms.CharField(required=True, min_length=6)

email=forms.EmailField()

captcha= captcha = CaptchaField(error_messages={"invalid":u"验证码错误"})

模板中添加以显示出验证码

验 证 码{{ register_form.captcha }}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值