django+xadmin开发可能会用到的包

Python常用包地址:若windows安装出错 ,可以去这里找想要的包——> https://www.lfd.uci.edu/~gohlke/pythonlibs/

  1. django-simple-captcha用于验证码的包(我也是从这里学到的:https://www.cnblogs.com/zhaijunming5/p/7570180.html)
  • 下载安装django-simple-captcha
  • INSTALLED_APPS中添加:'captcha',
  • 配置url:url(r'^captcha/', include('captcha.urls')),
  • 数据库迁移
  • app中新建form,并创建form对象

       

  • 新建views对象(记得导入要用的包和模块)

        

  • 配置views的url:

  • html网页取值

效果:

       (1)进入页面

        

     (2)验证码错误

           

2.定时任务

from apscheduler.schedulers.background import BackgroundScheduler#导包

scheduler = BackgroundScheduler()#声明对象

from django_apscheduler.jobstores import DjangoJobStore

# If you want all scheduled jobs to use this store by default,

# use the name 'default' instead of 'djangojobstore'.

scheduler.add_jobstore(DjangoJobStore(), 'djangojobstore')

from django_apscheduler.jobstores import register_events

register_events(scheduler)

 

@scheduler.scheduled_job("interval", seconds=1000, id="job")

#方法定义

def job():

      time.sleep(10)#每隔10秒打印一次

      print("hello world!")

#任务开启

scheduler.start()

3.富文本编辑器

 (1)富文本编辑器用于Xadmin

     由于djangoueditor虚拟环境安装的只适合用于py2,则要去github上下载最新的来适用于py3,

  1. 将下载下来的解压到extra_apps中
  2. 在installed_apps(setting.py)中引入:'DjangoUeditor',
  3. 配置url:url(r'^ueditor/',include('DjangoUeditor.urls' )),
  4. 修改model:

         

     5.xadmin插件中添加ueditor插件,内容如下:

import xadmin

from xadmin.views import BaseAdminPlugin, CreateAdminView, ModelFormAdminView, UpdateAdminView

from DjangoUeditor.models import UEditorField

from DjangoUeditor.widgets import UEditorWidget

from django.conf import settings

 

class XadminUEditorWidget(UEditorWidget):

    def __init__(self,**kwargs):

        self.ueditor_options=kwargs

        self.Media.js = None

        super(XadminUEditorWidget,self).__init__(kwargs)

 

class UeditorPlugin(BaseAdminPlugin):

    def get_field_style(self, attrs, db_field, style, **kwargs):

        if style == 'ueditor':

            if isinstance(db_field, UEditorField):

                widget = db_field.formfield().widget

                param = {}

                param.update(widget.ueditor_settings)

                param.update(widget.attrs)

                return {'widget': XadminUEditorWidget(**param)}

        return attrs

    def block_extrahead(self, context, nodes):

        js = '<script type="text/javascript" src="%s"></script>' % (settings.STATIC_URL + "ueditor/ueditor.config.js")

        #自己的静态目录

        js += '<script type="text/javascript" src="%s"></script>' % (settings.STATIC_URL + "ueditor/ueditor.all.min.js")

        #自己的静态目录

        nodes.append(js)

 

xadmin.site.register_plugin(UeditorPlugin, UpdateAdminView)

xadmin.site.register_plugin(UeditorPlugin, CreateAdminView)

     6.xadmin插件init.py中添加ueditor用于初始化检查

     7使用方式:(a) adminx.py中: style_fields = {" testField ": "ueditor"}

                         (b)html中解析字段时要防止转义:{% autoescape off %}

                                                                             {{ TestModel.testField}}

                                                                              {% endautoescape %}

 (2)富文本用于前端

  1. views中引入from django.forms import forms、from DjangoUeditor.forms import UEditorField
  2. 声明form类并设置富文本各项参数class FormStyle(forms.Form): test = UEditorField(u'描述', width=600, height=300, toolbars="full",                    imagePath="images/%(basename)s_%(datetime)s.%(extname)s", filePath="/files/", )
  3. 若model传值可以对对象进行初始赋值form.fields["test"].initial = xxx. test (test是model中的一个富文本字段, form是含有富文本字段的form对象),然后将富文本对象更新到要传值的字典中{“form”: form}
  4. 前端引入富文本样式{% form.media %}
  5. 前端引入值{{ form }}

以上均属于个人学习之后的总结,若有不妥,请各位前辈多指教。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值