django 02 前端文件于数据库操作配置

静态文件配置

复制代码
# 1.静态文件
     不经常变化的文件,主要是html文件所使用的资源
           css、js、img、第三方框架文件
    
    django针对静态文件资源需要单独开放一个目录统一存放
               - static目录             
                   css目录
                   js目录
                   img目录
                utils目录/plugins目录/libs目录/others目录/不创
# 2.资源访问
    通过路由获取到的资源是因为开设了接口
# 3.静态文件资源访问
    默认情况下无法访问,因为没有提前开设静态文件资源的访问接口
复制代码
复制代码
# 1.什么是静态文件
      静态文件是html页面上使用不经常改变的资源
           -1.下载的第三方框架文件     
           -2.img图形类型的文件
           -3.js类型的文件
           -4.css样式文件   
      针对不同类型的文件,可以进行分类
"""
      我们需要对静态文件进行分门别类,方便后续管理,我们需要把所有的静态文件放到static文件夹下,该文件夹需要自己手动创建。对于static下方的静态文件可以按照类型再进行分门别类
"""

# 2.静态文件资源的访问
      - 要想访问静态文件资源就需要提前开设该资源相应的接口
             找到创建的app下的setting文件在下面添加静态资源配置将:
                  STATICFILES_DIRS = [
                         os.path.join(BASE_DIR, 'static')
                  ]
             添加至 STATIC_URL = '/static/'下面
"""静态文件资源配置是一个列表,意味着我们可以定义多个资源配置"""

                  STATIC_URL = '/static/' # 接口前缀
      - 接口前缀就类似于一个访问资源时的身份令牌,与资源地址前面要一致,必须要以/static/开头


# 3.动态解析
      - 主要用于接口前缀变更导致的大批量资源地址失效问题
             在前端html页面内导入位置加入{% load static %}将资源地址修改为{% static '想找的文件名'  %}
             例:
                  <link rel="stylesheet" href="/static/bootstrap-3.4.1-dist/css/bootstrap.css">
     
             修改后:
                  {% load static %}
                  <link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.css' %}">
     
# 4.案例剖析:
      关于Django配置:
         -1. INSTALLED_APPS = [ 'app01.apps.App01Config', ]
                在INSTALLED_APPS列表中找到该配置,没有需要手动添加app名称['app01',]
         -2.django启动报错,版本不适配问题   
                'DIRS': [BASE_DIR / 'templates']
                修改为  
                'DIRS': [os.path.join(BASE_DIR,'templates')]
      编写一个django的登录项目
         -1.在urls.py中添加一组登录的对应关系
                from app01 import views
                urlpatterns = [ path('login/', views.login')
                ]
         -2.在app下的views.py编写登录的核心逻辑
                from django.shortcuts import render,HttpResponse,redirect

                def login(request):
                     return render(request, 'my01.html')

         -3.使用三板斧和前端交互
                前端导入js和jquery文件后编写。
                前端编写后,我们会发现我们导入的样式全都没有显现,请求资源的时候出现了404。
                这是因为,我们没有给请求的资源设置相应的接口,所以找不到资源。
复制代码

form表单

复制代码
# 1.GET请求
    -1.朝别人索要数据的请求是GET请求,可以携带额外的参数
           url?xxx=yyy&
    -2.GET请求携带数据的方式有两个限制
          携带的额外参数大小不能超过2KB
          携带的数据只能是一些无关紧要的非敏感数据
    -3.GET请求没有请求体(HTTP数据格式)

# 2.POST请求
    -1.朝别人提交数据的请求是POST请求,可以携带额外的参数
    -2.数据都是放在请求体中的,并且对数据的大小没有限制
    -3.提交post请求,前期需要去配置setting文件中注释一行代码
         注释掉:
              MIDDLEWARE = ['django.middleware.csrf.CsrfViewMiddleware',]
        
# 3.form表单默认的请求方式是GET请求
    <form action="" method="post"></form>
     修改form表单的请求方式:
           method="post"
     控制数据的提交地址:有三种
           action="" 
     -方式1:不写 朝当前页面所在地址提交
     -方式2:写后缀/index/   会自动补全ip和port
     -方式3:写全称 https://www.baidu.com                                                                                  
复制代码

request对象

复制代码
request.method         # 该方法可以获取请求方式(GET/POST)纯大写
# POST请求:
request.POST           # 获取POST请求发送来的普通数据(不包含文件) 
                           # 获取到的值是一个字典形式的数据(键必须存在)
request.POST.get()     # 不指定,默认只获取字典里面列表中最后一个数据
request.POST.getlist() # 默认获取键对应的整个列表,有几个拿几个,也可以在括号内填写索引值
# GET请求:
request.GET            # 获取URL后面携带的非敏感数据
request.GET.get()      # 不指定,默认只获取列表中的是最后一个
request.GET.getlist()  # 获取键对应的整个列表,有几个拿几个
复制代码

pycharm连接数据库

 

 

 

 

 

 

 

django连接数据库

复制代码
"""django默认使用的是sqlite3 但是这款数据库一般只用于本地测试,功能较少"""

# 1.django连接数据库,需要先去配置文件中修改配置
     原来的配置
        DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.sqlite3',
                'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
            }
        }

    修改后的配置
        DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.mysql',  # 指定数据库软件名称
                'NAME': 'mypycharm',   # 指定库名
                'USER': 'root',        # mysql账户名
                'PASSWORD': '',        # mysql密码
                'HOST': '127.0.0.1',   # 本机地址
                'PORT': '3306',        # mysql默认端口号
                'CHARSET':'utf8'       # 字符编码
            }
        }

# 2.关于修改配置后终端运行仍然报错
     我们需要指定链接的MYSQL模块
      -1.django1.1版本: 直接在app应用目录下的__init__.py中编写代码
             import pymysql
             pymysql.install_as_MySQLdb()          
      -2.django2.2版本往上:  需要使用mysqlclient模块 
             Terminal终端开启输入指令
             pip3.8 install mysqlclient
复制代码

orm简介

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

# 3.orm基本语句
       from app01 import models
       增:models.类名.objects.create()
       查:models.类名.objects.filter()
       改:models.类名.objects.update()
       删:models.类名.objects.delete()
          models.类名.objects.filter().delete()
复制代码

 

posted @   橘子菌菌n  阅读(56)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示