Django ----- app 和 ORM的操做和介绍

说明一下 GET 和 POST 的区别: 1, GET ①获取一个页面 ②提交数据 数据显示在URL ?user=alex&pwd=alexdsb 2,POST from 表单提交数据  数据不显示

建立APP

 建立APP 有两种方式python

 1、 命令行建立APP文件:mysql

python manage.py startapp app01

执行命令后 项目目录下会多出一个app文件程序员

 

2、 也能够用pycharm来建立app文件sql

1. Django项目建立后追加app:数据库

  可使用Pycharm的manage.py工具来执行命名.在主菜单中选择Tools,在下拉菜单中选择Run manage.py Taskdjango

  

 

在弹出的命令窗口中直接输入命令就能够建立好app浏览器

startapp app01

2,在建立Django项目时,创建appapp

在Application name 中添加上要建立的名字便可ide

 

 

建立Django建立App 的大概步骤

1,下载:
    命令行: pip install django == 1.11.15
            pip install -i或 源  django == 1.11.15
    pycharm
            settings 解释器 点 + 号  输入django 选择版本

2,建立 Django项目
    1,命令行:  (可能有的东西没配置)
            cd 保存项目的目录
            django - admin startporject 项目名
    2,pycharm(能够本身都配置好)
            filr(按钮)--> new project --选择django ---->选择解释器--建立django项目
3,启动项目
    1,命令行:
            切换到 manage.py的目录下
            cd
            python manage.py runserver  #127.0.0.1:8000
            python manage.py runserver 80 #127.0.0.1:8000
            python manage.py runserver  #0.0.0.1:8000
    2.pycharm
            配置项
            点绿色三角启动
4,settings配置
    1,静态文件
            STATIC_URL= "/static/"    #别名 ()
            STATICFILES_DIRS = [
                    os.path.join(BASE_DIR,"static"),

            ]   (能够建立多个)

    2,TEMPLATES    模版  放HTML文件的地方
            DIRS [os....]   自动生成的

    3,注释 csrf中间件
        MIDDLEWARE   第四行 csrf 注释掉这一行
    4,数据库的配置

5, URL 和函数的对应关系  ---> urls.py
    urlpatterns[
        url(r"^admin/",admin.site.urls),
        url(),
    ]

6.APP   
    1.建立APP
        1,命令行:
                python manage.py startapp APP名
        2,pycharm
                tools ---> run manage.py task --> startapp APP名

    2.注册APP
        在settings.py中
        INSTALLED_APPS[
            加上本身的APP名(如若pycharm建立 会自动添加 如果手动添加则按规范来
            "APP名字.apps.App01Config")

        ]

7.使用mysql数据库
    1.建立一个数据库
    2.在srttings配置:
            DATABASES = {
                'default': {
                    'ENGINE': 'django.db.backends.mysql', #引擎
                    'NAME': 'db66',                     #数据库名字
                    "USER": "root",                     #帐户
                    "PASSWORD": "666666",                #密码
                    "HOST": "127.0.0.1",               #IP地址
                    "PORT": 3306,                     #端口号
                }
            }
    3.告诉Django 使用pymysql 模块链接数据库
            在settings.py 同级目录下的 __init__.py中写(下载好了 pymysql):
                    import pymysql
                    pymysql.install_as_MYSQLad()

    4.建表    在APP文件夹里 models.py文件中写类(继承 models.Model)
            class Userinfo(models.Model):
                user = models.CharField(max_length=32)
                pwd = models.CharField(max_length=32)

    5.执行命令 (数据库迁移命令)
        Tools  ---> Run~~
            python manage.py makemigrations    #记录models.py中类是否是有变化 将变化的内容记录下来 记录到了  APP文件下 migrations  0001_initial.py里面
            python manage.py migrate 

8 .ORM
        对象和关系型数据库的映射  经过操做对象的方式来操做数据库

        映射关系;
            类 ---> 数据表
            对象 ---> 数据行
            属性  ---> 字段

        ORM 能作的事:
            操做数据表   (建表,删表,改表)
            操做数据行

        ORM 的操做 :
            from login import models 
            # 获取全部数据
            models.Userinfo.objects.all()     ---> Queryset类型
            # 获取一条数据
            models.Userinfo.objects.get(user="??",pwd="??")
            get取不到数据或者取到多条数据的时候报错
            #建立一条数据
            models.Userinfo.objects.creat(user="??",pwd="??")

9.form表单

    1.method ="post"   (form表单里面 必须带有这个)  action=""  ,这是请求方式 和提交数据的地址
    2.全部的 input标签要有name属性,  name的名字要和 上面ORM 的user pwd 相同
    3.有一个input 的type="submit"  或者有一个button 按钮 就能够提交form表单

10. views.py  写函数
    request  跟请求相关的内容
        request.method    字符串 请求方式 GET/POST
        request.POST      post请求提交的数据       字典
        request.GET       get请求提交的数据

    返回值
        from django.shortcuts import HttpResponse,render,redirect

        HttpResponse("字符串")    -->页面显示的就是字符串
        render(request,"模版文件的名字")  -->渲染你的HTML文件返回给浏览器
        redirect("/要跳转的URL/")     --->重定向  告诉浏览器再向浏览器发次GET请求
大概步骤

 

 

orm介绍

1、 ORM的概念函数

    对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。

    简单的说,ORM是经过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

    ORM在业务逻辑层和数据库层之间充当了桥梁的做用。

2、 ORM由来

    让咱们从O/R开始。字母O起源于"对象"(Object),而R则来自于"关系"(Relational)。

    几乎全部的软件开发过程当中都会涉及到对象和关系数据库。在用户层面和业务逻辑层面,咱们是面向对象的。

    当对象的信息发生变化的时候,咱们就须要对象的信息保存在关系数据库中。

    按照以前的方式来进行开发就会出现程序员会在本身的业务逻辑代码中夹杂不少SQL语句用来增长、读取、修改、删除相关

    数据,而这些代码一般都是极其类似或者重复的。

3、ORM的优点和劣势

   优点:

      ORM解决的主要问题是对象和关系的映射。它一般将一个类和一张表一一对应,类

      的每一个实例对应表中的一条记录,类的每一个属性对应表中的每一个字段。 

      ORM提供了对数据库的映射,不用直接编写SQL代码,只需操做对象就能对数据库操做数据。

      让软件开发人员专一于业务逻辑的处理,提升了开发效率。

   劣势:      

      ORM的缺点是会在必定程度上牺牲程序的执行效率。

      ORM的操做是有限的,也就是ORM定义好的操做是能够完成的,一些复杂的查询操做是完成不了。

      ORM用多了SQL语句就不会写了,关系数据库相关技能退化...

4、 ORM的总结:    

      ORM只是一种工具,工具确实能解决一些重复,简单的劳动。这是不能否认的。

      但咱们不能期望某个工具能一劳永逸地解决全部问题,一些特殊问题仍是须要特殊处理的。

      可是在整个软件开发过程当中须要特殊处理的状况应该都是不多的,不然所谓的工具也就失去了它存在的意义

orm的操做

建立项目!!!!

  

Django 中默认的数据库是用的db.sqlite3 (ACID的关系型数据库管理系统,它包含在一个相对小的C库中);

更改这个默认的数据库为指定的MySQL数据就须要从新配置主文件夹中的settings.py 配置文件:

Django项目中使用Mysql数据库

  1,在Django项目中的srttings.py文件中,配置数据库链接信息:

  

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "你的数据库名称",  # 须要本身手动建立数据库
        "USER": "数据库用户名",
        "PASSWORD": "数据库密码",
        "HOST": "数据库IP",
        "POST": 3306
    }
}

  2.在与Django项目同名的目录下的 __init__.py文件中写以下代码,告诉Django使用pymysql模块链接Mysql数据库:

引入pymysql文件时 要肯定 已经下载了pymysql这个包  ( pip install pymysql   (终端执行))

import pymysql

pymusql.install_as_MYSQLdb()

  注意! 数据库迁移的时候出现一个警告:

  

WARNINGS: ?: (mysql.W002) MySQL Strict Mode is not set for database connection 'default' HINT: MySQL's Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it.

  在配置中多加一个OPTIONS参数 : 

 'OPTIONS': { 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'"},

            model

在Django中model是你数据的单1、明确的信息来源。它包含了你存储的数据的重要字段和行为。一般,一个模型(model)映射到一个数据库表。

基本状况:

  • 每一个模型都是一个Python类,它是django.db.models.Model的子类。
  • 模型的每一个属性都表明一个数据库字段。
  • 综上所述,Django为您提供了一个自动生成的数据库访问API,详询官方文档连接

 

 

 

 

 

 

 

1,建立数据库的表:

  

# 1, 在APP文件夹中找到 models.py文件夹; # 2, 导入该模块 from django.db import models class Userinfo(models.Model):  # 3, 继承该类, user = models.CharField(max_length=32)  # varchar(32) # 4, 添加字段 pwd = models.CharField(max_length=32)                        # 4, 添加字段 def __str__(self): return self.user # 5, 数据库迁移 执行两条命令:  python manage.py makemigrations # 把models.py的变化记录下来  python manage.py migrate # 去修改你的数据库

2,获取表中的数据,以及插入数据:

# 使用数据库中的数据每每是在视图函数中的需求, 因此须要在 APP文件中的 view.py中使用 from app01 import models # 从本身的app01的包中导入 models 模块. 该模块建立了字段 models.Userinfo.objects.all() # 此方法是获取全部的数据 models.Userinfo.objects.get(user='Fush') # 此方法获取一条字段user='Fush'的数据, 若没有符合条件的数据则报错, 若是有多条则也报错 models.Userinfo.objects.create(user='MJJ',pwd='XJJ') # 此方法是插入数据
相关文章
相关标签/搜索