django configuration model CRUD

django configuration

Static configuration file

  1. What static files: Web site used to advance to write css, js, third-party front-end module, images are called static resources

  2. By default, all html files are on the templates folder

  3. Static resource files used by all websites on the static default file folder

    Typically the static folder inside another folder will build as: css, js, font, img, bootstrap ...

STATIC_URL = '/static/'  # 访问静态文件资源接口前缀  通常情况下接口前缀的名字也叫static
        # 手动开设静态文件访问资源
        STATICFILES_DIRS = [  # 静态资源所在的文件夹路径
            os.path.join(BASE_DIR,'static'),  # 将static文件里面所有的资源暴露给用户
            os.path.join(BASE_DIR,'static1'),  # 将static文件里面所有的资源暴露给用户
            # os.path.join(BASE_DIR,'static2'),  # 将static文件里面所有的资源暴露给用户
        ]
  1. Static files Dynamic Binding

    {% load static %}
         <link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}">
         <script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script>

The default is to get a request form form

get request can also carry parameters

http://127.0.0.1:8000/login/?username=jason&password=jason123
特点:url?xxx=xxx&yyy=yyy

1.携带的数据不安全
2.携带的数据大小有限制 最大好像应该差不多在4KB左右
3.通常只会携带一些不是很重要的数据

aciton

  1. Do not write default submission towards current address
  2. Write only the suffix / index
  3. Write full path

Pre-case re-submit the request appears toward the rear end 403, you need to get comment out a line in the configuration file content

# 中间件
        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',
        ]
django后端的视图函数 默认处理的是get请求
        无论是发get请求还是post请求 都会执行视图函数

request method acquaintance

request.method: acquisition request mode, and write the string is pure greatly

requesr.POST: Get user submits a request data post

How to get user data

request.GET.get () # default Gets the last element of the list

request.GET.getlist () # if you want to get a list with getlist ()

pycharm database connection

django connect to MySQL

There must be two operations

1.配置文件配置
            DATABASES = {
                    'default': {
                        'ENGINE': 'django.db.backends.mysql',  # 指定数据库类型
                        'NAME': 'day49',  # 指定库的名字
                        'USER':'root',  # 注意 键必须是全大写
                        'PASSWORD':'123qwe',
                        'HOST':'127.0.0.1',
                        'PORT':3306,
                        'CHARSET':'utf8'
                    }
                }
2.主动告诉django 不要用默认的mysqldb连接 而是用pymysql
  你可以在项目名下的__init__.py中书写
  也可以在应用名下的__init__.py中书写
  pymysql.install_as_MySQLdb()

Introduction of django orm

orm 对象关系映射
        
        类           表
        
        对象         数据
        
        对象点属性   字段对应的值
        
        为什么使用orm
            能够让不会数据库操作的人也能够简单方便去操作数据库
        orm的缺点
            封装程度太高  有时候会出现查询效率偏低的问题
            所以工作中
                简单的用orm
                复杂的 追速度 需要你手动书写sql语句
                
之后在写django项目的时候 一个django就对应一个数据库
    不要出现多个项目使用同一个数据的情况(******)

Field of deletions model change search

Modify field

直接修改代码 然后执行数据库迁移命令即可(两条一条不能少)
                # 方式1  设置默认值
                email = models.EmailField(default='[email protected]')  # varchar
                # 方式2   允许字段为空
                phone = models.BigIntegerField(null=True)
                # 直接在提示中给默认值
                gender = models.CharField(max_length=32)
python manage.py makemigrations
python manage.py migrate

Delete field

直接注释掉对应的字段 然后再执行数据库迁移命令即可(谨慎使用)

Deletions model change search table data

data = models.User.objects.filter(username=username)  # <QuerySet [<User: User object>]>
        """
        filter返回的结果是一个"列表",里面才是真正数据对象
        filer括号内可以放多个关键字参数 这多个关键字参数在查询的时候 是and关系
        """
        user_list = models.User.objects.all()  # models.User.objects.filter()
        """
        结果是一个"列表" 里面是一个个的数据对象
        """

increase

user_obj = models.User.objects.create(username=username,password=password)
        print(user_obj,user_obj.username,user_obj.password)
        # create方法会有一个返回值  返回值就是当前被创建的对象本身

change

    models.User.objects.filter(id=edit_id).update(username=username,password=password)
        """
        批量操作  会将filter查询出来的列表中所有的对象全部更新
        """

Deleted (under normal circumstances will not be used)

models.User.objects.filter(id=delete_id).delete()
        """
            批量操作  会将filter查询出来的列表中所有的对象全部删除
        """

Guess you like

Origin www.cnblogs.com/hj59988326/p/11914648.html