2022年7月31日

Django: RuntimeError: Model class xxx.apps.users.models.User doesn’t declare an explicit app_label and isn’t in an application in INSTALLED_APPS.

1.Django项目错误提示: RuntimeError: Model class xxx.apps.users.models.User doesn’t declare an explicit app_label and isn’t in an application in INSTALLED_APPS. 2.解决 使用相对路径引用Models模块,把绝对路径都改成相对路径,每个错误的绝对路径都要改成相对路径: apps.xxx.urls.py from . import views apps.xxx.views.py from .models import xxx…
2022年7月30日

Django: ImproperlyConfigured: Requested setting ..., but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

添加以下代码: os.environ.setdefault('DJANGO_SETTINGS_MODULE', '项目名.settings')…
2022年7月30日

Django: 数据签名 / itsdangerous JSONWebSignatureSerializer TimedJSONWebSignatureSerializer 已弃用

Django官方文档 Protecting complex data structures¶ If you wish to protect a list, tuple or dictionary you can do so using the Signer.sign_object() and unsign_object() methods, or signing module’s dumps() or loads() functions (which are shortcuts for TimestampSigner(salt='django.core.signing').sign_object()/unsign_object()). These use JSON serialization under the hood. JSON ensures that even if your SECRET_KEY is…
2022年7月28日

Django: ORM中原生JSONField的使用方法 models存储json格式的数据

Django最新版v3.1的主要更新之一便是完善了对JSON数据存储的支持,新增models.JSONField和forms.JSONField,可在所有受支持的数据库后端上使用 目前支持的数据库以及对应版本主要有MariaDB 10.2.7+,MySQL 5.7.8+,Oracle,PostgreSQL和SQLite 3.9.0+,但个别Django的查询方法可能与部分数据库不兼容,例如contains和contained_by就不支持Oracle和SQLite数据库 JSONField使用 from django.db import models class Hero(models.Model): name = models.CharField(max_length=200) data = models.JSONField(null=Tru…
2022年7月25日

Django: 判断用户是否登录

1. 展示用户中心界面 class UserInfoView(View): """用户中心""" def get(self, request): """提供个人信息界面""" return render(request, 'user_center_info.html') 需求: 当用户登录后,才能访问用户中心。 如果用户未登录,就不允许访问用户中心,将用户引导到登录界面。 实现方案: 需要判断用户是否登录。 根据是否登录的结果,决定用户是否可以访问用户中心。 2. is_authenticate 判断用户是否登录 介绍: Django用户认证系统提供了方法request.user.is_authenticated()来判断用户是否登录。 如果通过登录验证则返回True。反之,返回False。 缺点:登录验证逻辑很多地方都需要,所以该代码需要重复编码好多次。 c…
2022年7月24日

Django: favicon.ico 文件的配置

favicon.ico 放在项目 static 文件夹下 方法一: from django.views.generic.base import RedirectView urlpatterns = [ path('favicon.ico', RedirectView.as_view(url=r'static/favicon.ico')), ] 方法二: 修改每个页面的HTML代码,添加以下代码: {% load staticfiles %} <link rel="shortcut icon" href="{% static "favicon.ico" %}"/>…
2022年7月18日

Django: 将图片转为Base64 然后使用json传输 Vue处理base64图片的显示

前端 Html: <img v-bind:src="image_code_url" v-on:click="generate_image_code" alt="图形验证码"> Vue: axios.get( url, {responseType: 'json'} ).then( response => { this.image_code_url = 'data:image/jpeg;base64,' + response.data.image; } ).catch( error => { console.log(error.response) } ) 后端: Django: class ImageCodeView(View): def get(self, request, uuid): text, image = captcha.generate_captcha(…
2022年7月17日

Django: JsonResponse 中文

解决方案:JsonResponse(data, json_dumps_params={'ensure_ascii':False}) 1 2 3 def master(request):     data = {'这是':'主页'}     return  JsonResponse(data, json_dumps_params={'ensure_ascii':False}) 首先我们看JsonResponse()的源码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class JsonResponse(HttpResponse):    def __init__(self, data, encoder=DjangoJSONEncoder, safe=True,     json_dumps_params=None, **kwargs):    …
2022年7月17日

Django: AttributeError: Manager isn't available; 'auth.User' has been swapped for 'users.User'

这是因为,自己扩展了django的用户认证模型: #setting.py AUTH_USER_MODEL = 'users.User' 解决方法 from django.contrib.auth.models import User from django.contrib.auth import get_user_model User = get_user_model() 官方文档…
2022年7月8日

Python: django 使用jinjia2时报错(admin.E403) A ‘django.template.backends.django.DjangoTemplates’ instance must be configured in TEMPLATES in order to use the admin application.

1 问题分析 (admin.E403) A ‘django.template.backends.django.DjangoTemplates’ instance must be configured in TEMPLATES in order to use the admin application. 解读:(admin.E403)必须在TEMPLATES中配置'django.template.backends.django.DjangoTemplates'实例,才能使用管理应用程序。 言下之意就是您的需要在您django项目下的setting中TEMPLATES增加django模板引擎。 2 解决(linux系统下) 2.1 修改django项目下setting中的TEMPLATES TEMPLATES = [ { 'BACKEND': 'django.templa…
ajax-loader