>  기사  >  백엔드 개발  >  Python 기본 지식 포인트 설명

Python 기본 지식 포인트 설명

巴扎黑
巴扎黑원래의
2017-06-23 11:10:022079검색

섹션 16 MySQLdb

  • win64비트 설치 python-mysqldb1.2.5

  • 우분투에서 MySQLdb 설치

    sudo apt-get install python-MySQLdb
  • MySQLdb 라이브러리 가져오기

    import MySQLdb
  • 데이터베이스 연결 만들기

    conn = MySQLdb.connect(host="localhost",user="root",passwd="123456",db="test",charset="utf8")
  • 객체 속성 연결

    • commit(): 데이터베이스 테이블이 수정된 경우 현재 데이터를 저장하도록 커밋합니다. 물론 이 사용자가 권한이 없이 그냥 하면 아무 일도 일어나지 않습니다. commit():如果数据库表进行了修改,提交保存当前的数据。当然,如果此用户没有权限就作罢了,什么也不会发生。

    • rollback():如果有权限,就取消当前的操作,否则报错。

    • cursor([cursorclass]):游标指针。

  • 创建游标(指针)cursor

    cur = conn.cursor()
  • cursor执行命令的方法:

    • execute(query, args):执行单条sql语句。query为sql语句本身,args为参数值的列表。执行后返回值为受影响的行数。

    • executemany(query, args):执行单条sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数

  • 在数据表中插入一条记录

    cur.execute("insert into users (username,password,email) values (%s,%s,%s)",("python","123456","python@gmail.com"))
  • 在数据表中插入多条记录

    cur.executemany("insert into users (username,password,email) values (%s,%s,%s)",(("google","111222","g@gmail.com"),("facebook","222333","f@face.book"),("github","333444","git@hub.com"),("docker","444555","doc@ker.com")))
  • 提交数据库操作

    conn.commit()
  • 查询数据

    cur.execute("select * from users")
    • fetchall(self):接收全部的返回结果行.

    • fetchmany(size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.

    • fetchone():返回一条结果行.

    • scroll(value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一行移动value条.

      cur.execute("select * from users")
      lines = cur.fetchall()
      for line in lines:
          print line
      
      cur.execute("select * from users where id=1")
      line_first = cur.fetchone()     #只返回一条
      print line_first
      
      cur.execute("select * from users")
      print cur.fetchall()
    • cursor对象获取数据的方法

  • 游标cursor的操作

    • cur.scroll(n)cur.scroll(n,"relative")

    • rollback(): 권한이 있으면 현재 작업을 취소하세요. 그렇지 않으면 오류가 보고됩니다.

    cursor([cursorclass]): 커서 포인터.
  • 커서(포인터) 커서 만들기

    cur.scroll(1)
    cur.scroll(-2)
    cur.scroll(2,"absolute")    #回到序号是2,但指向第三条
  • 커서 명령 실행 방법:

execute(query, args): 단일 SQL 문을 실행합니다. query는 SQL 문 자체이고 args는 매개변수 값 목록입니다. 실행 후 반환 값은 영향을 받은 행의 수입니다.

executemany(query, args): 단일 SQL 문을 실행하지만 매개변수 목록의 매개변수를 반복적으로 실행하고 반환 값은 영향을 받은 행의 수입니다.

  • Insert 데이터 테이블에 하나의 레코드

    cur.execute("update users set username=%s where id=2",("mypython"))
    conn.commit()
    • 데이터 테이블에 여러 레코드 삽입

      conn = MySQLdb.connect("localhost","root","123456",port=3306,charset="utf8")    #创建数据库时不指定那个数据库
      conn.select_db("test")      #连接创建后再指定
    • 데이터베이스 작업 제출

      cur.close()     #先关闭游标
      conn.close()    #再关闭数据库
    Query data
  • class 类名:
        成员变量
        成员函数
    
    class MyClass():
        first = 123
        def fun(self):
            print "I am function"

    • fetchall(self) :모든 반환 결과 행을 수신합니다.
    • fetchmany(size=None): 크기 값이 반환된 결과 행 수보다 큰 경우 커서.배열 크기 데이터입니다. .
    • fetchone(): 결과 행을 반환합니다.
  • scroll(value, mode='relative'): 포인터를 다음으로 이동합니다. mode='relative'인 경우 현재 행에서 값 막대를 이동하는 것을 의미합니다. mode='absolute'인 경우 결과 집합의 첫 번째 행에서 값 막대를 이동하는 것을 의미합니다. 커서 객체가 데이터를 얻는 방법
    • 커서 작동

cur.scroll(n) 또는 cur.scroll(n, "relative") : 현재 위치를 기준으로 위쪽 또는 아래쪽으로 이동을 의미하며, n은 양수로 아래쪽(앞으로)을 의미하고, n은 음수로 위쪽(뒤로)을 의미합니다.
  • "절대"를 달성하는 또 다른 방법이 있습니다. "상대" 이동이 아닌 이동: 하나의 매개변수 "절대" 증가
if __name__ == "__main__":
    myClass = MyClass()     #创建类的一个实例
  • 데이터 업데이트
class Person:
    def __init__(self, name, lang, website):
        self.name = name
        self.lang = lang
        self.website = website
  • 데이터베이스 지정
  • # 抽象形状类
    class Shape:
        # 类的属性
        edge = 0
        # 构造函数
        def __init__(self, edge):
            self.edge = edge
        # 类的方法
        def getEdge(self):
            return self.edge
        # 抽象方法  
        def getArea(self):
            pass
    
    #三角形类,继承抽象形状类
    class Triangle(Shape):
        width = 0
        height = 0
        # 构造函数
        def __init__(self, width, height):
            #调用父类构造函数
            Shape.__init__(self, 3)
            self.width = width
            self.height = height
        #重写方法
        def getArea(self):
            return self.width * self.height / 2
    
    #四边形类,继承抽象形状类       
    class Rectangle(Shape):
        width = 0
        height = 0
        # 构造函数
        def __init__(self, width, height):
            #调用父类构造函数
            Shape.__init__(self, 4)
            self.width = width
            self.height = height
        #重写方法
        def getArea(self):
            return self.width * self.height
    
    triangle = Triangle(4,5);
    print triangle.getEdge()
    print triangle.getArea()
    
    rectangle = Rectangle(4,5);
    print rectangle.getEdge()
    print rectangle.getArea()
  • 데이터베이스 닫기
  • rrreee
  • 섹션 17 개체 - 지향

    클래스 및 객체
    • 절차적 및 객체 지향 프로그래밍

    • 프로세스 지향 프로그래밍: 함수형 프로그래밍, C 프로그래밍 등
    • 객체 지향 프로그래밍: C++, Java, Python 등
  • 클래스와 객체: 지향 객체의 두 가지 중요한 개념
  • 클래스: 자동차 모델
    • 객체: 클래스의 인스턴스입니다. 예: QQ 자동차, 버스
  • 설명 예
  • 자동차 모델은 자동차의 특성과 동작을 추상화한 다음 실제 자동차 엔터티를 인스턴스화할 수 있습니다. 🎜🎜🎜🎜Python 클래스 정의🎜🎜🎜 🎜Python 클래스 정의🎜🎜🎜🎜🎜사용 class 키워드는 클래스를 정의하며, 클래스 이름의 첫 글자는 대문자로 시작해야 합니다.🎜🎜🎜🎜프로그래머가 간단한 유형으로 표현할 수 없는 유형을 만들어야 하는 경우에는 다음이 필요합니다. 클래스를 생성하려면🎜🎜🎜🎜클래스에 필요한 변수와 함수가 결합되는데, 이러한 포함을 "캡슐화"라고도 합니다.🎜🎜🎜🎜🎜파이썬 클래스의 구조🎜rrreee🎜🎜🎜객체 생성🎜🎜🎜🎜 🎜핸들은 서로 다른 객체를 구별하는 데 사용됩니다🎜🎜🎜🎜객체의 속성과 메서드, 그리고 클래스의 멤버 변수와 멤버 함수는 🎜rrreee🎜🎜🎜에 해당합니다. 객체를 생성하는 과정을 객체 생성이라고 합니다. , 여기에는 개체의 핸들, 속성 및 메서드라는 세 가지 특성이 포함됩니다. 🎜🎜🎜🎜🎜생성자 __init__🎜rrreee🎜🎜🎜self는 매우 마법 같은 매개변수입니다🎜🎜🎜🎜🎜self는 클래스의 인스턴스를 가리킵니다. self는 호출된 메서드의 인스턴스를 가리킵니다.🎜🎜 🎜🎜🎜하위 클래스, 상위 클래스 및 상속🎜rrreee🎜🎜🎜Python은 다중 상속을 지원하지만 권장되지 않습니다🎜🎜🎜

    위 내용은 Python 기본 지식 포인트 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.