zoukankan      html  css  js  c++  java
  • DAY71-Django框架(二)

    一、Django中app的概念

    大学: ---------------项目
    ​ 信息学院 ----------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 ----将变化同步到数据库中

  • 相关阅读:
    C语言指针入门
    c的动态内存管理
    汇编入门基础与helloworld
    汇编1
    汇编2——完整的例子集合
    算法与数据结构——选择,插入,希尔排序
    MySQL
    MySQL 笔记
    CSS样式优先级
    GIT使用笔记
  • 原文地址:https://www.cnblogs.com/xvchengqi/p/9909413.html
Copyright © 2011-2022 走看看