Python常用包地址:若windows安装出错 ,可以去这里找想要的包——> https://www.lfd.uci.edu/~gohlke/pythonlibs/
- 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,
- 将下载下来的解压到extra_apps中
- 在installed_apps(setting.py)中引入:'DjangoUeditor',
- 配置url:url(r'^ueditor/',include('DjangoUeditor.urls' )),
- 修改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)富文本用于前端
- views中引入from django.forms import forms、from DjangoUeditor.forms import UEditorField
- 声明form类并设置富文本各项参数class FormStyle(forms.Form): test = UEditorField(u'描述', width=600, height=300, toolbars="full", imagePath="images/%(basename)s_%(datetime)s.%(extname)s", filePath="/files/", )
- 若model传值可以对对象进行初始赋值form.fields["test"].initial = xxx. test (test是model中的一个富文本字段, form是含有富文本字段的form对象),然后将富文本对象更新到要传值的字典中{“form”: form}
- 前端引入富文本样式{% form.media %}
- 前端引入值{{ form }}
以上均属于个人学习之后的总结,若有不妥,请各位前辈多指教。