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"
相关推荐
电脑能手1 小时前
遇到该问题:kex_exchange_identification: read: Connection reset`的解决办法
linux·ubuntu·ssh
snoopyfly~1 小时前
Ubuntu 24.04 安装配置 Redis 7.0 开机自启
linux·redis·ubuntu
精英的英1 小时前
在Ubuntu 24.04主机上创建Ubuntu 14.04编译环境的完整指南
linux·运维·ubuntu
奇妙之二进制2 小时前
计算机科学导论(10)什么是BIOS
ubuntu·计算机基础
岁月玲珑2 小时前
【如何判断Linux系统是Ubuntu还是CentOS】
linux·ubuntu·centos
Kevin不想说话926193 小时前
Ubuntu 24.04 安装搜狗输入法完整教程
ubuntu
小宁爱Python5 小时前
FastAPI+Sqlite+HTML的登录注册与文件上传系统:完整实现指南
sqlite·html·fastapi
互联网搬砖老肖6 小时前
Python 中如何使用 Conda 管理版本和创建 Django 项目
python·django·conda
矩阵老炮7 小时前
Ubuntu20.4编译AOSP源码实践
ubuntu·aosp
嵌入式成长家7 小时前
ubuntu rules 使用规则
linux·ubuntu·rules 使用规则