### 12.2 静态文件的使用 #### 12.2.1静态文件的配置和使用 settings.py ```python STATIC_URL = '/static/' #别名 STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static'), os.path.join(BASE_DIR,'static1'), os.path.join(BASE_DIR,'static2') ] ``` 放置在static文件夹中的静态文件,应该这样找: ```html <link rel="stylesheet" href="/static/css/login/css" //注意:无论静态文件的名字叫什么,查找需要交的静态文件时,用的是别名,不是文件夹真正的名字 按照列表的顺序来进行查找的 ``` #### 12.2.2 简单的登录实例 form表单提交数据注意的问题: 1. 提交的抵制action="" 请求方式 method="post" 2. 所有的input框都有name属性 3. 有一个input框的type="submit"或者有一个button 注意:提交post数据请求,把settings中MIDDLEWARE的'django.middleware.csrf.CsrfViewMiddleware'注释掉 #### 12.2.3 app app: - admin.py #Django后台管理的工具 - modles.py #跟ORM相关 - views.py #写函数 创建APP: - 命令行 python manage.py startapp app名称 - pycharm:tools——>run manage.py task ——>startapp app名称 注册APP: ```python INSTALLED_APPS = [ ... 'app01', 'app01.apps.App01Config', #推荐写法 ] ``` #### 12.2.4 ORM Django中使用MySQL数据库的流程: 1. 创建一个MySQL数据库 2. 在settings中配置,Django链接MySQL数据库: 3. ```python DATABASES = { default:{ 'ENGINE':'django.db.backends.mysql', #引擎 'NAME':'day53', #数据库名称 'HOST':'127.0.0.1', #ip地址 'PORT':3306, #端口 'USER':'root' #用户 'PASSWORD':'123' #密码 } } ``` 4. 在与settings同级目录下的init文件中写: 5. ```python import pymysql pymysql.install_as_MySQLdb() ``` 6. 创建表(在app下的models.py中写类): 7. ```python from django.db import models class User(models.Model): username = models.CharField(max_length=32) #username varchar(32) password = models.CharField(max_length=32) #password varchar(32) ``` 8. 执行数据库迁移的命令 1. python manage.py makemigrations #检测每个注册app下的model.py 记录model的变更记录 2. python manage.py migrate #同步变更记录到数据库中 orm操作 ```python # 获取表中所有的数据 ret = models.User.objects.all() #QuerySet 对象列表 [对象] #获取一个对象(有且唯一) obj = models.User.objects.get(username='alex') #获取不到或者获取到多个对象会报错 #获取满足条件的对象 ret = models.User.objects.filter(username='alex',password='asd') #QuerySet 对象列表 ```