标签:__ 管理器 app MessageType django mysql import message
django入门到精通⑧消息管理器和mysql数据库的互动
1.message_test/settings.py配置
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app', 'app.templatetags', ] TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR + '/templates'], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'muke_lession_test', 'USER':'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': 3306 } }
总路由配置
message_test/urls.py
from django.contrib import admin from django.urls import path,include from app import urls as app_urls urlpatterns = [ path('admin/', admin.site.urls), path('', include(app_urls)) ]
2.常量的配置
app/consts.py
# _*_ coding:utf-8 _*_ # __author__ == 'jack' # __date__ == '2020-12-31 8:28 PM' from enum import Enum class MessageType(Enum): info = "info" warning = "warning" error = "error" danger = "danger" delete = "delete" MessageType.info.label = '信息' MessageType.warning.label = '警告' MessageType.error.label = '错误' MessageType.danger.label = '危险' MessageType.info.color = 'green' MessageType.warning.color = 'orange' MessageType.error.color = 'gray' MessageType.danger.color = 'red' MessageType.delete.color = 'yellow' SensitiveWord = ['天气', '坏人', '不开心']
3.自定义过滤器的使用
app/templatetags/custom.py
# _*_ coding:utf-8 _*_ # __author__ == 'jack' # __date__ == '2020-12-31 9:03 PM' import jieba from django import template from app.consts import SensitiveWord import time register = template.Library() @register.filter(name='deep_check_message') def deep_check(value): # 只屏蔽关键词,替换为 * 号 cut_message = jieba.lcut(value) new_message = [] for m in cut_message: if m in SensitiveWord: new_message.append('*') else: new_message.append(m) if new_message: return ''.join(new_message) return value @register.filter def sample_check(value): # 自定义的关键词过滤器 cut_message = jieba.lcut(value) print(cut_message) print(SensitiveWord) check = list(set(cut_message) & set(SensitiveWord)) if len(check) != 0: return '该消息涉及违禁词汇,已被屏蔽' return value @register.filter def add_message_year(value, year): return '{} {}'.format(value, year) @register.filter def date_convert(value): timearray = time.localtime(value) otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timearray) return otherStyleTime
4.app/models.py的定义
# coding:utf-8 from django.db import models from .consts import MessageType class Message(models.Model): content = models.TextField() message_type = models.CharField(max_length=10, db_index=True) created_time = models.IntegerField(default=0) def __str__(self): return 'type:{}, content:{}'.format(self.message_type, self.content) @property def message_typ(self): try: return MessageType[self.message_type] except: return MessageType.info
5.路由定义
app/urls.py
# _*_ coding:utf-8 _*_ # __author__ == 'jack' # __date__ == '2020-12-29 8:27 PM' from django.urls import path from .views import LessionThree, LessionFourPageOne, LessionFourPageTwo, DeleteMessage, UpdateMessage urlpatterns = [ path('three/<str:message_type>', LessionThree.as_view(), name="three"), path('fourPageOne/<str:message_type>', LessionFourPageOne.as_view()), path('delete/', DeleteMessage.as_view()), path('update/', UpdateMessage.as_view()), path('fourPageTwo', LessionFourPageTwo.as_view(), name='fourpagetwo') ]
6.模板文件
templates/three.html {% load custom %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> {% if error %} <h3>error {{ error }}</h3> {% else %} <label style="color:{{ message_type.color }}">{{ message_type.label }}</label> <span style="color:{{ message_type.color }}">{{ message|deep_check_message|add_message_year:2020 }}</span> {% endif %} </body> </html> templates/four_page_one.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> {{ error }} </body> </html> templates/four_page_two.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> {% load custom %} <h1>this page tow</h1> {% for message in messages %} <li style="color:{{ message.message_typ.color }}"> {{ message.id }} {{ message.content }} 时间:{{ message.created_time|date_convert }} <a href="http://127.0.0.1:8000/delete?id={{ message.id }}">删除</a> </li> {% endfor %} </body> </html>
标签:__,管理器,app,MessageType,django,mysql,import,message 来源: https://www.cnblogs.com/reblue520/p/14299701.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。