django ubuntu 踩坑集锦

目录

    • [1 ubantu mysql查看表结构](#1 ubantu mysql查看表结构)
    • [2 导入同级目录文件出现未解析引用错误](#2 导入同级目录文件出现未解析引用错误)
    • [3 第三方包------tinymce富文本编辑器](#3 第三方包——tinymce富文本编辑器)
    • [4 verbose_name,verbose_name_plural](#4 verbose_name,verbose_name_plural)
    • [5 搜索路径的添加](#5 搜索路径的添加)
    • [6 auto_now_add 和 auto_now](#6 auto_now_add 和 auto_now)
    • [7 auth_user的表结构](#7 auth_user的表结构)
    • [8 在 Django 中定义 ForeignKey 字段时,必须指定 on_delete 参数,它决定了当引用的对象被删除时该如何处理](#8 在 Django 中定义 ForeignKey 字段时,必须指定 on_delete 参数,它决定了当引用的对象被删除时该如何处理)
    • [9 安装pymysql](#9 安装pymysql)
    • [10 Django的第一个表在什么时候创建,什么情况下会创建表](#10 Django的第一个表在什么时候创建,什么情况下会创建表)
    • [11 上传文件到github时遇到OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0](#11 上传文件到github时遇到OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0)
    • [12 提交表单后编辑视图------视图处理流程(用户注册为例)](#12 提交表单后编辑视图——视图处理流程(用户注册为例))
    • [13 render渲染函数](#13 render渲染函数)
    • [14 redirect 重定向函数](#14 redirect 重定向函数)
    • [15 表单Form 和 视图View](#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.](#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查看表结构

python 复制代码
desc ...;

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

python 复制代码
from ..app1 import 模块

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

settings

python 复制代码
INSTALLED_APPS=[
...
	'tinymce;,
]

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

apps

python 复制代码
from tinymce.models import HTMLField
class MODELNAME(models.Model):
	detail=HTMLField(verbose_name=商品详情)


4 verbose_name,verbose_name_plural



5 搜索路径的添加

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

python 复制代码
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 参数,它决定了当引用的对象被删除时该如何处理

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

9 安装pymysql

项目名称下的__init__文件

python 复制代码
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)返回应答

python 复制代码
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.

解决方案

python 复制代码
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"
相关推荐
Quincy_Freak14 分钟前
信创内网数据规范实践:银河麒麟下SQLite本地数据安全管理方案
数据库·sqlite·arm·数据库管理·大数据分析·银河麒麟·aarch64
艾莉丝努力练剑5 小时前
OpenCode AI 编程:Ubuntu 24.04 环境安装与使用指南
linux·服务器·网络·人工智能·tcp/ip·ubuntu
Tian_Hang6 小时前
Eclipse Ditto 的权限策略
java·服务器·前端·网络·ide·ubuntu·eclipse
ai生成式引擎优化技术7 小时前
从知识连接到智能组织:WSaiOS认知网络的理论框架与系统设计摘要
网络·python·plotly·django·pygame
一杯奶茶¥13 小时前
Ubuntu系统镜像各个版本下载Ubuntu镜像合集资源Linux系统镜像乌班图Linux系统镜像
linux·运维·ubuntu·镜像·;inux镜像·ubuntu镜像
超级数据查看器1 天前
超级数据查看器 v10.0 发布
java·大数据·数据库·sqlite·安卓
☆cwlulu1 天前
调试排查工具介绍(gdb、strace、Valgrind等)
开发语言·c++·嵌入式硬件·ubuntu
瓶中怪1 天前
ROS2 机器人软件系统
linux·c++·python·ubuntu·vmware·ros2·机器人软件开发
大气的小蜜蜂1 天前
基于Python+Django的健身房管理系统实现:核心亮点全流程解析
开发语言·python·django
TrisighT1 天前
Electron 鸿蒙 PC 上做本地搜索,Fuse.js 比 SQLite 快 6 倍——但我愣是选了最慢的方案
electron·sqlite·harmonyos