首页 > 其他分享 >Django总结

Django总结

时间:2022-12-11 19:46:20浏览次数:49  
标签:总结 文件 models app py django Django 目录

Django总结

django简介

1.版本问题
        django1.X:同步		1.11
        django2.X:同步		2.2
        django3.X:支持异步    3.2
        django4.X:支持异步	   4.2
	ps:版本之间的差异其实不大 主要是添加了额外的功能
        
2.运行django注意事项
	1.django项目中所有的文件名目录名不要出现中文
	2.计算机名称尽量也不要出现中文
 	3.一个pycharm尽量就是一个完整的项目(不要嵌套 不要叠加)
	4.不同版本的python解释器与不同版本的django可能会出现小问题

django基本使用

1.下载
	pip3 install django 				默认最新版
 	pip3 install django==版本号		  指定版本
    	pip3 install django==2.2.22
	pip下载模块会自动解决依赖问题(会把关联需要用到的模块一起下了)
2.验证
	django-admin
3.常见命令
	1.创建django项目
		django-admin startproject 项目名
	2.启动django项目
		cd 项目名
		python38 manage.py runserver ip:port
4.pycharm自动创建django项目
	会自动创建templates文件夹 但是配置文件中可能会报错
    	[os.path.join(BASE_DIR,'templates')]

django app的概念

django类似于一所大学 app类似于大学里面的各个学院

django里面的app类似于某个具体的功能模块
	user	app 所有用户相关的都写在user app下
	goods	app 所有商品相关的都写在goods app下

命令行创建应用
	python38 manage.py startapp 应用名
pycharm创建应用
	新建django项目可以默认创建一个 并且自动注册
"""
创建的app一定要去settings.py中注册
	INSTALLED_APPS = [
    	'app01.apps.App01Config',
		'app02'
	]
"""

django主要目录结构

django项目目录名
	django项目同名目录
		settings.py		配置文件
		urls.py			存储网址后缀与函数名对应关系(不严谨)
		wsgi.py			wsgiref网关文件
	db.sqlite3文件	   django自带的小型数据库(项目启动之后才会出现)
	mange.py			入口文件(命令提供)
	应用目录
		migrations目录	存储数据库相关记录
		admin.py		  django内置的admin后台管理功能
		apps.py			  注册app相关
		models.py		 与数据库打交道的(非常重要)
    	tests.py		 测试文件
    	views.py		 存储功能函数(不严谨)
   	templates目录			存储html文件(命令行不会自动创建 pycharm会)
    	配置文件中还需要配置路径
        	[os.path.join(BASE_DIR,'templates'),]
 
"""
	网址后缀			路由
	函数				 视图函数
	类				  视图类
重要名词讲解
	urls.py				 路由层	
	views.py			 视图层
	models.py			 模型层
	templates			 模板层
"""

django小白必会三板斧

`from django.shortcuts import render,HttpResponse,redirect

HttpResponse		 返回字符串类型的数据

render				返回html页面并且支持传值

redirect			重定向

静态文件配置

1.编写一个用户登录页面
2.静态文件
	不怎么经常变化的文件 主要针对html文件所使用到的各种资源
		css文件、js文件、img文件、第三方框架文件

	django针对静态文件资源需要单独开设一个目录统一存放
		static目录
        	该目录下如果各种类型的文件都多 还可以继续创建目录
			   css目录
                js目录
                img目录
				utils目录/plugins目录/libs目录/others目录/不创
3.资源访问
	我们在地址栏中之所以可以使用路由获取到相应的资源是因为程序员提前开设了资源的接口
4.静态文件资源访问
	默认情况下无法访问 因为我们没有提前开设静态文件资源的访问接口

静态文件相关配置

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

1.接口前缀
STATIC_URL = '/xxx/'  # 访问静态文件资源的接口前缀(通行证)  
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),  # 存储静态文件资源的目录名称
    os.path.join(BASE_DIR, 'static1'),  # 存储静态文件资源的目录名称
    os.path.join(BASE_DIR, 'static2'),  # 存储静态文件资源的目录名称
]
'''
接口前缀正确之后 会拿着后面的路径依次去到列表中自上而下查找 一旦找到就返回
'''

2.接口前缀动态匹配
{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.min.css' %}">
<script src="{% static 'bootstrap-3.4.1-dist/js/bootstrap.min.js'%}"></script>

form表单

action		控制数据提交的地址
	1.action=""  数据默认提交给当前页面所在的地址
	2.action="https://www.baidu.com/"	完整地址
	3.action="/index/"  朝当前服务端的index地址提交

method		控制数据提交的方法
	默认是get
    可以改post

请求方法补充
	get
    	朝服务端索要数据 也可以携带一些额外的要求
			携带额外数据的方式:	URL?xxx=yyy&uuu=zzz
             问号后面携带数据的大小是有限制(2KB)的并且不能携带敏感数据   	post
        朝服务端提交数据
			携带额外数据的方式:	请求体
             请求体携带数据安全性较高并且没有大小限制   

前期发送post请求需要注释掉配置文件中的某一行
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

request对象

request.method	获取请求方式	结果是纯大写的字符串数据
	GET\POST
request.POST	获取post请求请求体里面携带的数据    	
	request.POST.get()		获取列表最后一个数据值
	request.post.getlist()	 获取整个列表数据
request.GET		获取网址问号后面携带的数据
	request.GET.get()		获取列表最后一个数据值
	request.GET.getlist()	 获取整个列表数据

"""
在视图函数中针对不同的请求代码编写套路
	if request.method == 'POST':
		return HttpResponse()
	return HttpResponse()
"""

pycharm连接数据库

1.pycharm初次连接数据库 需要下载对应的驱动

django连接数据库

djongo自带的sqlite3是一个小型的数据库 功能比较少 主要用于本地测试
我们实际项目中都会替换掉它

默认配置sqlite3
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}


1.修改配置文件
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'day51',
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'USER': 'root',
        'PASSWORD': '123',
        'CHAREST': 'utf80'
    }   
}
2.需要指定模块
	django1.X版本需要在项目目录下或者app目录下的__init__.py编写代码
		import pymysql
         pymysql.install_as_MySQLdb()
	django2.X及以上都可以直接通过下载mysqlclient模块解决
		pip3.8 install mysqlclient
	ps:该模块Windows下载问题不大 主要是mac电脑可能有问题

ORM简介

ORM:对象关系映射
	能够让不会SQL语句的python程序员 使用python面向对象的语法来操作数据库

类					表
对象					一条条数据
对象点名字			  数据获取字段对应的值

ORM由于高度封装了SQL 所以有时候效率较低 我们需要自己写SQL

ORM基本操作

1.现在models.py中编写模型类
	class GirlsTnfo(models.Model):
        # 字段名 = 字段类型 + 约束条件
		id = models.AutoField(primary_key=True)
		name = models.CharField(max_length=32)
		age = models.IntegerField()
2.执行数据库迁移相关命令
	python38 manage.py makemigrations  将操作记录到小本本上
(migrations)
	python38 manage.py migrate			将操作同步到数据库上
 '''注意每次在models.py修改了与数据库相关的代码 都需要再次执行上述命令'''

ORM基本语句

from app01 import models
models.类名.object.create()
models.类名.object.filter()
models.类名.object.update()  # 全部更新
models.类名.object.filter().update()  # 更新指定数据
models.类名.object.delete()  # 全部删除
models.类名.object.filter().delete()  # 删除指定数据

标签:总结,文件,models,app,py,django,Django,目录
From: https://www.cnblogs.com/DragonY/p/16974258.html

相关文章

  • 2022-2023-1 20221406 《计算机基础与程序设计》第十五周学习总结
    2022-2023-120221406《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程<班级的链接>https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP......
  • django2
    静态文件配置1.编写一个用户登录页面2.静态文件 不怎么经常变化的文件主要针对html文件所使用的到的各种资源 css文件、js文件、img文件、第三方框架文件 djan......
  • 【博学谷学习记录】超强总结,用心分享。Web重要知识点。
    1.网络通讯部分  1.1TCP与UDP区别?   TCP(TransmissionControlProtocol传输控制协议)是一种面向连接(连接导向)的、可靠的、基于IP的传输层协议。......
  • 12.5 ~ 12.11 总结
    12.5~12.11总结UOJ450【集训队作业2018】复读机\(k\)个对象,\(n\)个操作,每次操作选一个对象出来,需要满足每个对象最后出现了\(d\)的倍数次。问方案数。\(d\le3,......
  • 十一周总结
    十一周总结JavaScriptjs基础1.注释语法//单行注释/*多行注释*/2.前端引入js的多种方式1.head内script标签内编写2.head内script标签src属......
  • 【博学谷学习记录】超强总结,用心分享|狂野架构SpringBoot自动配置
    自动配置:根据我们添加的jar包依赖,会自动将一些配置类的bean注册进ioc容器,我们可以需要的地方使用@Autowired或者@Resource等注解来使用它。问题:SpringBoot到底是如何进行......
  • 本周总结
    目录本周总结前端开发之jsjs简介js基础变量与常量基本数据类型运算符流程控制函数内置对象BOM操作DOM操作操作节点获取值操作class与css操作事件jQuery类库标签对象与jQuer......
  • Django中需要修改配置
    Django需要修改配置1.修改templates中的路径配置:TEMPLATES=[{'BACKEND':'django.template.backends.django.DjangoTemplates','DIRS':[os.p......
  • 2022-2023-1 20221311《计算机基础与程序设计》课程总结
    2022-2023-120221311《计算机基础与程序设计》课程总结作业信息班级:https//edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求:https.//www.cnblogs.com/rocedu/p/......
  • Kubernetes疑难问题总结一
    分析ExitCode定位Pod异常退出原因    查看ExitCode   使用kubectldescribepod查看到pod对应退出状态码,如果不为0,表示异常退出  退出状态码区间,0-255,0表示正常......