zoukankan      html  css  js  c++  java
  • Django基础

    1. 创建django项目

      django-admin startproject 项目名

    2. 创建django应用

      django-admin startapp 应用名

    3.做配置 settings.py
    # 3.1 注册应用 INSTALLED_APPS = [ ..... 'rest_framework', 'corsheaders', '新建的应用名' ]

    3.2.1 安装corsheaders

    pip install django-cors-headers

    3.2.2 注册

        .....
        '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': 'haoyouduo',
            'HOST': '127.0.0.1',
            'PORT': 3306,
            'USER': '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'),
    ]
    
    路由 (一级路由/系统路由+二级路由/应用路由)
    # 一级路由/系统路由
    from django.contrib import admin
    from django.urls import path,include
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('fruit/', include('fruit.urls')),
    ]
    
    #二级路由/应用路由
    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.数据模型
    
    - 模型的字段
    `CharField  字符串     varchar()
    IntegerField  整型    => int(11)
    DateTimeField  时间类型  =>datetime()
    DecimalField  财务类型 => decimal()
    BooleanField  布尔类型  =>tinyint(1)
    SmallIntegerField 小整型  =》  int(6)
    ImageField  图片类型   => varchar()
    AutoField  自增字段
    ForeignKey  外键
    ManyToManyField  多对多`
    
    #属性
    max_length   最大的长度   一般放在CharField里面
    max_digits 和 decimal_places 一般放在 DecimalField里面
    unique  唯一索引
    auto_now_add 默认当前时间,时间字段第一次添加记录的时间
    auto_add     默认当前时间,时间字段每次改变的记录的时间
    default      默认值
    upload_to    文件上传的地址
    on_delete    CASCADE级联删除  DO_NOTHING 什么都不做
    
    
    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.视图函数
    FBV  `基于函数的视图`
    `def index(request):
    	return HttpResponse("")`
    
    CBV  `基于类的视图`
    from django.view import View
    class DemoView(View):
        def get(self,request):
            return HttpResponse("")
    
    7.序列化  `一般是在数据库或者其他地方将数据读出来经过处理转成json结构返回给前端供其使用。`
    
    8.get 
    `目的:通过request对象,获取查询参数
    过程:
    http://xxx.com/index/?name=xxx&age=ccc&name=yyy request.GET:是一个查询字典
    request.GET.get(key) # 获取单个key,value request.GET.getlist(key) # 获取单个key,对应的多个value,得到的是list列表。`
    
    9.post,put,delete
    `目的:获取request获取表单,及非表单提交的非查询参数数据
    常见的请求方式有:POST,PUT,DELETE,PATCH
    请求体中的数据, 一类是json, 一类是表单数据
    request.POST:获取表单数据(会把body的内容,解析一份, 解析成一个查询字典) request.body:获取json数据
    需要将bytes类型转成dict格式,用到decode(),loads()`
    
    Post, put都需要处理请求体, delete可以没有请求体
    post, 通过请求头中的content-type字段来区分格式
    表单格式: name=zhangsan&age=18 json格式: '{"name":"zhangsan", "age":18}'
    
    10虚拟环境
    `# 方法1:win10 
    pip install virtualenv
    pip install virtualenvwrapper-win`
    
    # 方法2:linux pip3 install virtualenvwrapper # python版本管理工具(虚拟环 境管理)
    mkdir $HOME/.virtualenvs # 把所有虚拟环境指定到一个目 录文件夹下存放 
    find / -name virtualenvwrapper.sh # 查找执行脚本路径,添加到 
    ~/.bashrc vim ~/.bashrc # 修改bash配置文件 ''' 
    export WORKON_HOME=$HOME/.virtualenvs # python虚拟环境安装位置 
    VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 # python真实环境 
    source /usr/local/bin/virtualenvwrapper.sh ''' source ~/.bashrc # 执行virtualenvwrapper安 装脚本
    
    virtualenvwrapper使用命令
    `mkvirtualenv test1 # 创建虚拟环境
    mkvirtualenv test2env -p python3 lsvirtualenv # 查看虚拟环境 
    workon test1 # 进入虚拟环境 
    deactivate # 退出虚拟环境 
    rmvirtualenv test1 # 删除虚拟环境 
    pip list # 查看虚拟环境下的安装包`
    
    pip命令集合
    pip pip install # 安装依赖包 
    pip uninstall # 卸载依赖包 
    pip list # 查看已经安装的依赖包 
    pip freeze > requirements.txt # 导出依赖包 
    pip install -r requirements.txt # 从文件安装依赖包
  • 相关阅读:
    XML和JSON的区别
    浏览器渲染和服务器渲染区别
    存储过程
    对象关系映射(ORM)
    GitHub和SVN的区别
    WEB网站常见受攻击方式及解决办法
    同源与跨域
    java常用API之DateFormat
    java常用API之Date类
    面型对象之匿名对象
  • 原文地址:https://www.cnblogs.com/wangxiaosai/p/13882073.html
Copyright © 2011-2022 走看看