• Django之form表单操作


    小白必会三板斧

    from django.shortcuts import render,HttpResponse,redirect

    HttpRespone:返回字符串

    render:返回html页面

    redirect:重定向

    静态文件配置

    静态文件:网站所用到的,自己写好js,自己写好css,第三方的框架bootstrap fontwesome sweetalert

    通常情况下网站所用到的静态文件资源统一都放在static文件下

    STATIC_URL='/static' 是访问静态资源的接口前缀

    只要你想要访问静态资源你就必须以static开头

    手动配置静态文件访问资源

    STATICFILES_DIRS=[

    os.path.join(BASE_DIR,'static'),

    os.path.join(BASE_DIR,'static1')

    ]

    接口前缀,动态解析

    {%load static%}

    <link rel="stylesheet" href="{% static'bootstrap/css/bootstrap.min.css'%}">

    <script src="{% static 'bootstrap/js/bootstrap.min.js %'}">

    form表单操作

    form表单 action参数可以写的形式

    ​ 1、不写 默认朝当前地址提交

    ​ 2、只写后缀/index/

    ​ 3、写全路径

    form表单默认朝后端提交的方式,默认是get请求

    缺点:

    ​ 1、不安全

    ​ 2、get请求携带的参数有大小限制(最大不能超过4kb)

    前期你如果提交post请求,你就去settings.py文件注释掉一个中间件

    ​ 'django.middleware.csrf.CsrfViewMiddleware',

    request对象及方法

    前后端数据交互

    如何获取请求方式

    1、获取post请求携带的数据

    request.POST

    2、获取get请求携带的数据

    request.GET

    get和post在后端获取用户数据的时候,规律是一样的

    request.POST.get('username')默认只取列表的最后一个元素

    如果你想将列表完整的取出,你必须用getlist()

    pycharm连接数据库 django连接数据库

    第一步配置文件中配置

    DATABASES={

    'default':{

    'ENGINE':'django.db.backends.mysql',

    'NAME':'数据库名',

    'USER':'root',

    'PASSWORD':'',

    'HOST':'127.0.0.1',

    'PORT':3306,

    'CHARSET':'utf8'

    }

    }

    第二步

    django默认使用的是mysqldb连接数据库,但是该模块不支持了

    所以你要告诉django不要用mysqldb该用pymysql连接

    可以在项目下面的__init__.py也可以在应用名下面的__init__.py文件中指定

    import pymysql

    pymysql.install_as_MySQLdb()

    django orm简介

    orm对象关系映射

    类 数据库的表

    对象 表的记录

    对象获取属性 记录的某个字段对应的值

    优点:能够让一个不会数据库操作的人,也能够简单快捷去使用数据库

    缺点:由于封装程度太高可能会导致程序的执行效率偏低

    ​ 有时候结合项目需求 可能需要你手写sql语句

    注意事项:

    ​ 1、django的orm不会自动帮你创建库,库需要你自己手动创建

    ​ 表会自动帮你创建 ,你只需要书写符合django orm语法的代码即可

    在应用下所在的models.py中书写类

    数据库迁移

    python manage.py makemigrations

    python manage.py migrate

    只要你在models.py中修改了跟数据库相关的代码,你就必须重新开始执行上面两条命令

  • 相关阅读:
    PAT 1008--------数组元素的循环右移,你需要记住的
    PAT1049-----枚举法,找规律题,注意降低时间复杂度
    PAT1048----你需要了解并记住的解题思路
    C++中几个输入函数的用法和区别(cin、cin.get()、cin.getline()、getline()、gets()、getchar()))
    PAT1040----关于数学题目的解法新思路值得借鉴,字符的配对
    PAT1029-----介绍字符串的解题思路和部分知识点
    PAT1027-----等差数列的问题或数学问题
    PAT1026----四舍五入的思路,%2d的一些知识
    / 已阅 /PAT1017-------高精度计算,问题的所有可能情况
    LeetCode 无重复字符的最长子串
  • 原文地址:https://www.cnblogs.com/lzss/p/11755232.html
Copyright © 2020-2023  润新知