博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django(app的概念、ORM介绍及编码错误问题)
阅读量:5162 次
发布时间:2019-06-13

本文共 1694 字,大约阅读时间需要 5 分钟。

day61

 

Django中的APP:

        什么是APP?以及为什么要用APP?
        
        project  --> 项目  (老男孩教育大学校)
        
        APP      --> 应用  (Linux学院/Python学院/大数据学院/Java学院)
        
        方便我们在一个大的Django项目中,管理实现不同的业务功能.
        
        1. 创建APP的命令
            1. 命令行,在Django项目的根目录输入:
                python3 manage.py startapp app名字

 

 

也可使用pycharm在创建Django项目时,创建app

 

ORM

    
    import pymysql
    pymysql.connect(
     ...
     ...
    )
    
    1. 不同的程序员写的SQL水平参差不齐
    2. 执行效率也参差不齐
    
    python语法   --自动翻译-->  SQL语句
    
    jQuery                      DOM
    $("#d1")     --自动翻译-->  document.getElementById("d1")
    
    ORM:  
        优点:
            1. 简单,不用自己写SQL语句
            2. 开发效率高
        缺点:
            1. 记忆你这个特殊的语法
            2. 相对于大神些的SQL语句,肯定执行效率有差距
 

 

       

    ORM的对应关系:
        类          --->      数据表
        对象        --->      数据行
        属性        --->      字段
 
    ORM能做的事儿:
        1. 操作数据表    --> 创建表/删除表/修改表
            操作models.py里面的类
        
        2. 操作数据行    --> 数据的增删改查
            
        不能创建数据库,自己动手创建数据库
      

    使用Django的ORM详细步骤:
        1. 自己动手创建数据库
            create database 数据库名;

CREATE DATABASE 数据库名字 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

兼容中文。

        2. 在Django项目中设置连接数据库的相关配置(告诉Django连接哪一个数据库)
            # 数据库相关的配置
            DATABASES = {
                'default': {
                    'ENGINE': 'django.db.backends.mysql',  # 连接的数据库类型
                    'HOST': '127.0.0.1',  # 连接数据库的地址
                    'PORT': 3306,  # 端口
                    'NAME': "day61",  # 数据库名称
                    'USER': 'root',  # 用户
                    'PASSWORD': '123456'  # 密码
                }
            }

        3. 告诉Django用pymysql代替默认的MySQLDB 连接MySQL数据库
            在项目/__init__.py文件中,写下面两句:
                import pymysql
                # 告诉Django用pymysql来代替默认的MySQLdb
                pymysql.install_as_MySQLdb()

 

是项目中的__init__.py,而不是app01中的。

        4. 在app下面的models.py文件中定义一个类,这个类必须继承models.Model
            class 类名(models.Model):
                ...

    

        5. 执行两个命令

            1. python3 manage.py makemigrations
            2. python3 manage.py migrate
 
 
    

如果要删除该数据库,将module.py中内容注释。

并运行上述两个命令即可,python3 manage.py makemigrations记录module中变动,python3 manage.py migrate翻译成sql语句并执行。

 

将表改为兼容中文。

ORM单表的增加和查询:

        1. 查询
            models.UserInfo.objects.all()
            
        2. 增加
            models.UserInfo.objects.create(name="张三")

 

一个实例化的对象对应一条数据

 

mysiteday61

 

登录网站

点击“添加用户”

提交之后过程:

 

中文”兼容“错误问题:

编码错误:

修改:

效果:

转载于:https://www.cnblogs.com/112358nizhipeng/p/10292242.html

你可能感兴趣的文章
图像处理与分析导论
查看>>
浅谈压缩感知(二十二):压缩感知重构算法之正则化正交匹配追踪(ROMP)
查看>>
二叉搜索树的后序遍历序列
查看>>
苹果向求职者抛出的8大难题
查看>>
杂项-数学软件:Mathematica
查看>>
第3章 深入理解init
查看>>
if判断IE浏览器的类型
查看>>
PoJ1979 Red and Black (DFS)
查看>>
POJ 3009 Curling 2.0(DFS + 模拟)
查看>>
链表与递归
查看>>
Vue表单输入绑定
查看>>
ES6中Generator
查看>>
图书管理系统一
查看>>
QT基础:QT 定时器学习
查看>>
linux定时任务的设置
查看>>
递归树 C#
查看>>
Django 之restfromwork 序列化组件实现数据增删查改
查看>>
hdu 1878 欧拉回路
查看>>
poj 1572
查看>>
Q: #6 Is the Feature Builder Preview supported on Windows XP and Windows Server 2003?
查看>>