DAY71-Django框架(二) 一、Django中app的概念 二、模板的路径设置 三、静态文件的配置 四、完整的登录功能 五、新手三件套 六、orm介绍

大学: ---------------项目
​ 信息学院 ----------app01
​ 物理学院 ----------app02
强调:创建了app,要在setting.py配置文件中注册

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',#创建项目时就创建了app,默认样式
    'app02',#手动注册
]

二、模板的路径设置

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]#模板路径
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

三、静态文件的配置

STATIC_URL = '/static/'    #一般不要改
#创建一个static文件夹       一般不要改
STATICFILES_DIRS=[
		os.path.join(BASE_DIR, 'static'),  #创建的文件夹路径(可以写多个)
		]

四、完整的登录功能

login.html
<!--action:提交到后台的地址三种写法:
	1.http://127.0.0.1:8000/login 直接指定路径
	2./login/   推荐用
	3.空         当前页面
-->
<!--methods的两种提交方式:
	1.get:获取数据,页面,携带数据是不重要的数据(数据量有大小限制),提交的数据会在url中显示,数据不安全
	2.post:往后台提交数据,相对安全
-->
<form action="/login/" method="post">
    <p>用户名:<input type="text" name="name" class="form-control"></p>
    <p >密码:<input type="password" name="pwd" class="form-control">
    </p>
    <input type="submit" value="提交">
    {{ msg }}
</form>
from django.shortcuts import render,HttpResponse,redirect
from app01 import models
# Create your views here.


def login(request):
    msg=''
    if request.method == 'POST':
        name = request.POST.get('user')
        pwd = request.POST.get('pwd')
        res = models.User.objects.filter(name=name, pwd=pwd)
        if res:
            msg='登陆成功'
        else:
            msg = '账号或密码错误'
    return render(request,'login.html',{'msg':msg})

五、新手三件套

  1. render:返回页,默认会去templates里找,注意路径
  2. redirect:重定向
  3. HttpResponse

本质:render和redirect都是返回HttpResponse的对象,是属于HttpResponse的方法

六、orm介绍

1.ORM

​ 即Object Relational Mapping,全称对象关系映射。
​ 优点:
​ 1.不用写sql,不会sql的人也可以写程序
​ 2.开发效率高
​ 缺点:
​ 1.可能sql的效率低

2.如何使用:

​ 1.如果连接mysql:在setting里配置:

'default': {
    'ENGINE': 'django.db.backends.mysql',
    'HOST': '127.0.0.1',
    'PORT': 3306,
    'USER': 'root',
    'PASSWORD': 'admin',
    'NAME': 'lqz',
}

​ 2.在app下的__init__.py里写:

import pymysql
# 更换连接模块
# MySQLdb替换为pymysql
pymysql.install_as_MySQLdb()

3.django-orm:

​ 1.不能创建数据库(需要手动创建数据库)
​ 2.可以创建数据表
​ 3.可以创建字段

4.数据库迁移

​ 1.python3 manage.py makemigrations ----记录一下数据库的变化
​ 2.python3 manage.py migrate ----将变化同步到数据库中