博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django第三方插件: xadmin、captcha、django-pure-pagination、DjangoUeditor
阅读量:5312 次
发布时间:2019-06-14

本文共 3904 字,大约阅读时间需要 13 分钟。

 python 3.5

一、后台管理系统:xadmin

将下载的xadmin文件夹复制到项目根目录

pip install httplib2 django-formtools django-crispy-forms
pip install six

INSTALLED_APPS = [    ...'xadmin',    'crispy_forms']
import xadminurlpatterns = [    url(r'^admin/', xadmin.site.urls),]

一定要:否则会出现programminerror

makemigrationsmigrate

 

二、注册验证码:django-simple-captcha

   源码地址:

        参考文档:

    安装:Pillow

pip install  django-simple-captcha  #或在项目解释器中安装;版本:0.5.6

    添加captcha 到 INSTALLED_APPS

url(r'^captcha/', include('captcha.urls')),  #url中配置

     makemigrations、migrate

数据库中生成表:captcha_captchastore

forms.py中:

class RegisterForm(forms.Form):    email = forms.EmailField(required=True)    password = forms.CharField(required=True, min_length=6)    captcha = CaptchaField(error_messages={
'invalid':'验证码错误'})  #生产验证码字段,并自定义错误信息,键是invilid

views.py中:

class RegisterView(View):    def get(self,request):        register_form = RegisterForm()  #生产实例        return render(request,'register.html',{
'register_form':register_form})  #传入模板

register.html中:

{
{ register_form.captcha }}  #模板中应用

 

 三、分页功能:

参考:

a、通过pip或在django中安装

b、添加到installed  apps

'pure_pagination',

c、settings中不需要自己设置

d、views中:

from django.shortcuts import renderfrom django.views import Viewfrom .models import *from pure_pagination import *class OrgView(View):    def get(self,request):        all_orgs = CourseOrg.objects.all()  #从数据库中获取所有机构对象列表        all_cities = CityDict.objects.all()  #城市对象列表        all_nums = all_orgs.count()  #机构总数        #对课程机构进行分页        try:            page = request.GET.get('page', 1)  #获取当前页码            p = Paginator(all_orgs, 2, request=request)  #参数1是所有的数据列表,2是每页显示信息数            orgs = p.page(page)  #获取当前页信息        except PageNotAnInteger:  #如果页码不是整型,就取首页            orgs = p.page(1)        except EmptyPage:  #如果页码超出范围,会报该错误,所以捕捉并处理            orgs = p.page(1)        context = {            'all_orgs':orgs,            'all_cities':all_cities,            'all_nums':all_nums        }        return render(request,'org-list.html',context=context)

e、模版中:

            {% for course_org in all_orgs.object_list %}  #显示逻辑                   ...                                

{
{ course_org.name }}

                  ... {% endfor %}
      #分页逻辑 {% if all_orgs.has_previous %}  #如果当前页有上一页就显示上一页页码并能跳转
  • 上一页
  • {% endif %} {% for page in all_orgs.pages %}  #迭代所有页码 {% if page %} {% ifequal page all_orgs.number %}  #页码与当前显示页页码相同,就将当前页码显示为特殊颜色如灰色,见下图
  • {
    { page }}
  • {% else %}
  • {
    { page }}
  • {% endifequal %} {% else %}
  • ...
  • {% endif %} {% endfor %} {% if all_orgs.has_next %}  #如果当前页有下一页就显示下一页页码并能跳转
  • 下一页
  • {% endif %}

 

四、DjangoUeditor

 源码:

1、拷贝里面的DjangoUeditor目录到extra_apps

2、添加到设置中app:

'DjangoUeditor'

3、url

#富文本相关url    url(r'^ueditor/',include('DjangoUeditor.urls' )),

4、模型中使用该字段:

from DjangoUeditor.models import UEditorField    #导入
detail = UEditorField(verbose_name='课程详情',width=600, height=300, imagePath="courses/ueditor/", filePath="courses/ueditor/",default='')

5、制作xadmin插件

a、在xadmin下的plugins插件管理目录中新建插件ueditor.py并添加到初始化文件中的PLUGINS元组中。

b、写插件

c、在应用的adminx文件中添加:

style_fields = {
'detail':'ueditor'}  #指明哪个字段使用富文本编辑器

6、最后在html文件中关闭对应字段的自动转义

{% autoescape off %}    {
{ course.detail }}{
% endautoescape %}

 

转载于:https://www.cnblogs.com/lybpy/p/8268580.html

你可能感兴趣的文章
android 中国镜像 RubyGems 镜像
查看>>
Javascript 刷新框架及页面的方法总集
查看>>
C语言 · 彩票
查看>>
分享一款在线less转css的神器
查看>>
鼠标放上去下划线跟着滑动
查看>>
linux 压力测试工具 webbench
查看>>
oralce 索引(1)
查看>>
jenkins-APP打包页面展示二维码【转】
查看>>
WebAssembly 上手
查看>>
Upload and Download File using Java
查看>>
ubuntu 创建快捷方式
查看>>
KBMMW 4.80.00 发布
查看>>
菜鸟成长记(十二)----- 生活的意义是什么?
查看>>
MySQL 函数
查看>>
转载 利用WWW类获取图片并且在unityUGUI的Image中显示
查看>>
apache 虚拟ip
查看>>
WinCE发展史
查看>>
CSS3动画
查看>>
分割, =两边为key和value
查看>>
WCF 第二章 契约 同步请求回复操作
查看>>