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"
相关推荐
sysin.org12 分钟前
Ubuntu 22.04.5 LTS 发布下载 - 现代化的企业与开源 Linux
linux·ubuntu
MonkeyKing_sunyuhua13 分钟前
Ubuntu 中无法直接使用 `conda` 命令,设置conda的环境变量
linux·ubuntu·conda
计算机学姐3 小时前
基于python+django+vue的医院预约挂号系统
开发语言·vue.js·后端·python·mysql·django·tornado
楚钧艾克4 小时前
Windows系统通过部署wsl + Goland进行跨平台开发
linux·windows·后端·ubuntu·golang
木木ainiks13 小时前
django自用教程
数据库·django·sqlite
aabbcc456aa13 小时前
ubuntu安装mysql 8.0忘记root初始密码,如何重新修改密码
linux·mysql·ubuntu
清园暖歌15 小时前
Ubuntu 20.04 解决 nvidia-smi 出错问题
linux·运维·ubuntu·报错·nvidia-smi
小泽耳机数码推荐家16 小时前
百元级蓝牙耳机推荐有哪些?四大优选品牌衷心推荐
python·django·virtualenv·pygame
杨~friendship18 小时前
Ubuntu上使用qt和opencv显示图像
linux·开发语言·c++·qt·opencv·ubuntu
无敌开心19 小时前
Django-Celery-Flower实现异步和定时爬虫及其监控邮件告警
爬虫·python·django