当前位置: 首页 > article >正文

django ubuntu 踩坑集锦

目录

    • 1 ubantu mysql查看表结构
    • 2 导入同级目录文件出现未解析引用错误
    • 3 第三方包——tinymce富文本编辑器
    • 4 verbose_name,verbose_name_plural
    • 5 搜索路径的添加
    • 6 auto_now_add 和 auto_now
    • 7 auth_user的表结构
    • 8 在 Django 中定义 ForeignKey 字段时,必须指定 on_delete 参数,它决定了当引用的对象被删除时该如何处理
    • 9 安装pymysql
    • 10 Django的第一个表在什么时候创建,什么情况下会创建表
    • 11 上传文件到github时遇到OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0
    • 12 提交表单后编辑视图——视图处理流程(用户注册为例)
      • (1)接收数据
      • (2)进行数据校验
      • (3)进行业务处理:用户注册
      • (4)返回应答
    • 13 render渲染函数
    • 14 redirect 重定向函数
    • 15 表单Form 和 视图View
    • 16 Model class apps.user.models.User doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

1 ubantu mysql查看表结构

desc ...;

2 导入同级目录文件出现未解析引用错误

from ..app1 import 模块

3 第三方包——tinymce富文本编辑器

settings

INSTALLED_APPS=[
...
	'tinymce;,
]

TINYMCE_DEFAULT_CONFIG={
	'theme':'advanced',
	'width':600,
	'height'=400,
}

apps

from tinymce.models import HTMLField
class MODELNAME(models.Model):
	detail=HTMLField(verbose_name=商品详情)

在这里插入图片描述
在这里插入图片描述

4 verbose_name,verbose_name_plural

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5 搜索路径的添加

settings.py 将所有应用放在一个单独的 apps 文件夹中

import sys
sys.path.insert(0,os.path.join(BASE_DIR,‘apps'))

6 auto_now_add 和 auto_now

在这里插入图片描述

7 auth_user的表结构

在这里插入图片描述

8 在 Django 中定义 ForeignKey 字段时,必须指定 on_delete 参数,它决定了当引用的对象被删除时该如何处理

class OrderGoods(BaseModel):
    '''订单商品模型类'''
    order = models.ForeignKey('OrderInfo',on_delete=models.CASCADE, verbose_name='订单')

9 安装pymysql

项目名称下的__init__文件

import pymysql
pymysql.install_as_MySQLdb()

10 Django的第一个表在什么时候创建,什么情况下会创建表

在这里插入图片描述

11 上传文件到github时遇到OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0

右键文件夹 git bash here
执行git config --global http.sslVerify "false"命令关闭SSL验证

12 提交表单后编辑视图——视图处理流程(用户注册为例)

(1)接收数据

(2)进行数据校验

(3)进行业务处理:用户注册

(4)返回应答

def register_handle(request):
    """进行注册处理"""
    #接收数据
    username=request.POST.get('user_name')
    password=request.POST.get('pwd')
    email=request.POST.get('email')
    allow=request.POST.get('allow')
    #数据校验
    if not all([username,password,email]):
        #数据不完整
        return render(request,'register.html',{'errmsg':'数据不完整'})
    #校验邮箱
    if not re.match(r'^[a-z0-9][\w.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$',email):
        return render(request,'register.html',{'errmsg':'邮箱格式不正确'})
    if allow != 'on':
        return render(request,'register.html',{'errmsg':'请同意协议'})
    #进行业务处理
    user = User.objects.create_user(username,email,password)
    #返回应答,跳转到首页
    return redirect(reverse('goods:index'))

13 render渲染函数

它负责将后端逻辑与前端展示相连接,生成用户最终看到的 Web 页面。

模板渲染:它将 Django 模板语言(DTL)与提供的上下文数据结合起来,生成最终的 HTML 页面。

请求处理:它接受 HttpRequest 对象作为参数,这允许模板访问请求中的数据,如用户会话、cookies、GET 和 POST 参数等。

响应生成:它返回一个 HttpResponse 对象,这个对象包含了渲染后的页面内容和任何必要的 HTTP 头信息,如内容类型(Content-Type)。

14 redirect 重定向函数

redirect 函数用于发出一个 HTTP 重定向命令,告诉浏览器或客户端去加载另一个 URL。这通常用于在某个操作完成后(如用户登录、注销、表单提交等)引导用户到另一个页面

15 表单Form 和 视图View

表单负责收集和验证用户输入,
而视图负责处理用户的请求、执行业务逻辑,并生成响应。
在 Django 中,表单和视图经常一起工作,以提供动态的 Web 应用程序功能

16 Model class apps.user.models.User doesn’t declare an explicit app_label and isn’t in an application in INSTALLED_APPS.

解决方案

settings.py:
BASE_DIR = Path(__file__).resolve().parent.parent
sys.path.insert(0,os.path.join(BASE_DIR,'apps'))
INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    'tinymce',#富文本编辑器
    "user",#用户模块
    "goods",#商品模块
    "cart",#购物车模块
    "order",#订单模块
]

user.apps.py:
from django.apps import AppConfig
class UserConfig(AppConfig):
    default_auto_field = "django.db.models.BigAutoField"
    name = "apps.user"

http://www.kler.cn/a/295085.html

相关文章:

  • 32位、64位、x86与x64:深入解析计算机架构
  • TCP/IP协议,TCP和UDP区别
  • vue3+element-plus==> el-form输入响应式失效踩坑!!!!!!!!!!
  • 并发基础:(淘宝笔试题)三个线程分别打印 A,B,C,要求这三个线程一起运行,打印 n 次,输出形如“ABCABCABC....”的字符串【举一反三】
  • scrapy爬取中信证券销售金融产品信息
  • 设计模式-七个基本原则之一-迪米特法则 + 案例
  • jmeter之TPS计算公式
  • Kafka命令
  • 在全球化时代成为超级个体:Web3、个人品牌与AI工具的融合
  • 【LeetCode】12.整数转罗马数字
  • MSSQL数据库安全配置
  • 信创实践(2):利用Leapp工具迁移CentOS至AnolisOS,实现系统升级与自主可控
  • 通信工程学习:什么是FM频率调制
  • 火狐浏览器设置秘籍:让https协议下的ws不加密时运行无阻(WebSocket connection HTTPS)
  • React Native中iOS工程从OC更换为swift
  • 压力测试知识总结
  • 网络学习-eNSP配置路由器
  • 【机器人工具箱Robotics Toolbox开发笔记(十四)】三连杆机器人直线轨迹规划仿真实例
  • 漫谈设计模式 [13]:命令模式
  • ES模块导入、导出学习笔记
  • 【网络安全】古典密码体制概述
  • Python--列表简介
  • js 写个 最简单的 chrome 插件,修改网页背景颜色
  • 退火吗?C#/WinForm演示退火算法
  • 手写 Vue Router 中的 Hash 模式和 History 模式
  • 反弹shell