Django 基础
1.创建django项目
django-admin startproject 项目名
2.创建django应用
django-admin startapp 应用名
3.做配置 settings.py
3.1 注册应用
INSTALLED_APPS = [
…
‘rest_framework’,
‘corsheaders’,
‘新建的应用名’
]
3.2 后端跨域
corsheaders.middleware.CorsMiddleware
3.2.1 安装corsheaders
pip install django-cors-headers
3.2.2 注册
INSTALLED_APPS = [
…
‘corsheaders’,
]
3.2.3 增加中间件 corsheaders.middleware.CorsMiddleware
需要在CommonMiddleware
在他上面
MIDDLEWARE = [
‘corsheaders.middleware.CorsMiddleware’,
]
3.2.4 允许所有的源跨域
CORS_ORIGIN_ALLOW_ALL = True
配置数据库
DATABASES = [
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘数据库名字’,
‘HOST’: ‘127.0.0.1’,
‘PORT’: 3306,
‘USER’: 'root‘, USER的’root’是原始用户名
‘PASSWORD’: ‘root’, PASSWORD的‘root’是数据库原始密码
}
]
项目本地化
LANGUAGE_CODE = ‘zh-hans’
TIME_ZONE = ‘Asia/Shanghai’
USE_I18N = True
USE_L10N = True
USE_TZ = False
静态文件位置
STATICFILES_DIRS = [
os.path.join(BASE_DIR,‘static’),
]
指定文件上传的位置
MEDIA_ROOT = [
os.path.join(BASE_DIR,‘static’),
]
4 路由 (一级路由/系统路由+二级路由/应用路由)
4.1一级路由/系统路由
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path(‘admin/’, admin.site.urls),
path(‘fruit/’, include(‘fruit.urls’)),
]
4.2 二级路由/应用路由
from django.urls import path
from . import views
urlpatterns = [
path(‘login/’, view.LoginView.as_view()),
]
浏览器该如何去访问?
一级路由+二级路由
=> http://127.0.0.1:80000/fruit/login/
slashed
出现类似于这样的关键字 路由中少斜线
5 数据模型
5.1模型的字段
CharField 字符串 varchar()
IntegerField 整型 => int(11)
DateTimeField 时间类型 =>datetime()
DecimalField 财务类型 => decimal()
BooleanField 布尔类型 =>tinyint(1)
SmallIntegerField 小整型 =》 int(6)
ImageField 图片类型 => varchar()
AutoField 自增字段
ForeignKey 外键
ManyToManyField 多对多
5.2属性
max_length 最大的长度 一般放在CharField里面
max_digits 和 decimal_places 一般放在 DecimalField里面
unique 唯一索引
auto_now_add 默认当前时间,时间字段第一次添加记录的时间
auto_add 默认当前时间,时间字段每次改变的记录的时间
default 默认值
upload_to 文件上传的地址
on_delete CASCADE级联删除 DO_NOTHING 什么都不做
5.3 元选项
class Demo(model.Model):
name = models.CharField(max_length=32,unique=True)
class Meta:
db_table = ‘demo’
ordering = ["-id","-name"]
abstract = True
db_table : 指定一个表名
ordering : 对指定的字段进行排序,一般使用的是列表
abstract : 抽象,如果为True,它只是一个公共类,让子类继承,不会产生新表。为Flase,就会生成新表
6视图函数
6.1 FBV 基于函数的视图
def index(request):
return HttpResponse("")
6.2 CBV 基于类的视图
from django.view import View
class DemoV