흰둥이는 반드시 삼판도끼, 정적 파일 설정, Request 대상 및 방법, pycharm과django 연결 데이터베이스, 필드의 삭제 수정과 데이터의 추가 조사를 할 것이다.

7396 단어
카탈로그
  • 1021 소백필회 삼판도끼, 정적 파일 설정, Request 대상 및 방법, pycharm과django 연결 데이터베이스, 필드의 삭제 수정과 데이터 추가
  • 1, 삼판도끼
  • 2. 정적 파일 구성
  • 정적 파일
  • 인터페이스 접두사의 동적 해석
  • 셋째, Request 대상 및 방법
  • 넷째,pycharm 연결 데이터베이스와django 연결 데이터베이스
  • pycharm 연결 데이터베이스
  • django 연결 데이터베이스
  • 5,django orm 소개
  • 필드의 첨삭 수정과 데이터의 증과 조사
  • 필드의 첨삭 수정
  • 데이터의 증가 및 조사

  • 1021 작은 백은 반드시 삼판도끼, 정적 파일 설정, Request 대상 및 방법, pycharm과django 연결 데이터베이스, 필드의 삭제 수정과 데이터의 추가 조사를 할 것이다.
    도끼
    사용자가 접근할 수 있는 모든 자원은 프로그래머가 미리 폭로한 것입니다. 만약 노출이 없다면 사용자는 영원히 접근할 수 없습니다
    django는 자동으로 리셋할 수 있지만, 때로는 반응 속도가 느려서, 코드를 다 쓰지 못했을 때 리셋할 수도 있습니다
    삼판도끼 필요 가져오기: from django.shortcuts import render,HttpResponse,redirectHttpResponse(반환 문자열)
    render(html 페이지로 돌아가기)
    redirect
    2. 정적 파일 구성
    정적 파일
    사이트에서 사용하는 자신이 쓴 js, 자신이 쓴 css, 제3자의 프레임워크bootstrap,fontawesome,sweetalert
    일반적인 상황에서 사이트에서 사용하는 정적 파일 자원은 모두static 폴더에 통일적으로 놓여 있다
    STATIC_URL = '/static/' # 정적 자원에 접근하는 인터페이스 접두사 '' 정적 자원에 접근하려면 static으로 시작해야 합니다 '' '' 정적 파일에 접근할 자원 STATICFILES 수동 설정DIRS = [ os.path.join(BASE_DIR,'static'), os.path.join(BASE_DIR,'static1'), os.path.join(BASE_DIR,'static2'), ]
    인터페이스 접두사의 동적 해석
    
        
        Title
        
    {#    #}
    {#    #}
    {#               #}    
    {#             #}  
        {% load static %}
        
        
    

    form 폼의 action 매개 변수를 쓸 수 있는 형식
  • 쓰지 않고 현재 주소로 기본 제출
  • 접미사/index/
  • 만 쓰기
  • 전체 경로 쓰기
  • 폼은 기본적으로 백엔드에 제출됩니다. 기본은 get 요청입니다.class 속성의method에서post로 변경하면post 요청으로 변경할 수 있습니다.
    get 매개 변수를 요청하는 방식은 url 뒤에 있습니까?
    ​ url?username=admin&password=213213213213213
    단점:
    ​ 1.안전하지 않다
    ​ 2.get 요청이 가지고 있는 파라미터는 크기 제한이 있습니다 (최대 4KB 정도를 초과할 수 없습니다)
    초기에post 요청을 제출하려면settings의MIDDLEWARE에서 중간부품을 주석해야 합니다
    MIDDLEWARE = [
                'django.middleware.security.SecurityMiddleware',
                'django.contrib.sessions.middleware.SessionMiddleware',
                'django.middleware.common.CommonMiddleware',
                # 'django.middleware.csrf.CsrfViewMiddleware',    #      
                'django.contrib.auth.middleware.AuthenticationMiddleware',
                'django.contrib.messages.middleware.MessageMiddleware',
                'django.middleware.clickjacking.XFrameOptionsMiddleware',
            ]

    3. Request 대상 및 방법
    전후단 데이터 상호작용
    요청 방법을 가져오는 방법: request.methodpost가 요청한 데이터 가져오기: request.POSTget 요청이 가지고 있는 데이터 가져오기: request.GETget과post가 백엔드에서 사용자 데이터를 가져올 때 규칙은 같다
    tank 123 request.POST.get ('username ') 은 기본적으로 목록의 마지막 요소만 가져옵니다. 목록을 완전하게 꺼내려면 getlist () 를 사용해야 합니다.
    4.pycharm 연결 데이터베이스와django 연결 데이터베이스
    pycharm 연결 데이터베이스
    창 오른쪽에 있는 데이터베이스를 클릭하고 MySQL을 선택하며 연결할 라이브러리 이름을 선택하고 사용자 이름과 비밀번호를 입력하고 apply, ok를 누르면 됩니다
    django 연결 데이터베이스
    첫 번째 단계:settings에 도착해야 합니다.py 파일의 구성, DATABASES에서 수정
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',  #       MySQL postgreSQL
            'NAME': 'getdb',  #        
            'USER': 'root',
            'PASSWORD': 'root',
            '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 문장을 손으로 써야 할 수도 있습니다
    django의 orm 고려 사항:
    1.django의 orm은 자동으로 라이브러리를 만들 수 없고 라이브러리는 스스로 수동으로 만들어야 합니다.하지만 테이블은 자동으로 만들어집니다.django의 orm 문법에 맞는 코드만 쓰면 됩니다.
    다음 모델을 적용하십시오.py에서 쓰기 클래스로 표 만들기
    class Userinfo(models.Model):
        #   id   userinfo      id int primary key auto_increment
        id = models.AutoField(primary_key=True)  #  django ,         ,django orm     
        #   username  ,   username varchar(64),CharField     max_length  
        username = models.CharField(max_length=64)  #  django orm   char  ,  django     ,     char  
        #   password  ,   password int
        password = models.IntegerField()

    ----------------------------------------------데이터베이스 마이그레이션(동기화) 명령 ----------------------------------------------------
    python manage.py makemigrations # 은 테이블을 만들지 않습니다. 단지 하나의 기록을 만들고 현재 동작을 작은 노트에 기록합니다. (migrations 폴더)
    python manage.py migrate # orm 문장을 데이터베이스로 옮기기 (동기화)
    모델스만 있으면.py에서 데이터베이스와 관련된 코드를 수정하면 위의 두 코드를 다시 실행해야 한다
    필드의 추가 삭제와 데이터의 추가 검색
    필드의 첨삭 수정
    증가:
    class Userinfo(models.Model):
        #   id   userinfo      id int primary key auto_increment
        id = models.AutoField(primary_key=True)  #  django ,         ,django orm     
        #   username  ,   username varchar(64),CharField     max_length  
        username = models.CharField(max_length=64)  #  django orm   char  ,  django     ,     char  
        #   password  ,   password int
        password = models.IntegerField()
        phone = models.BigIntegerField(default=110)  #      ,         
        addr = models.CharField(max_length=64, null=True)  #            
    

    변경: 필드를 변경한 후 데이터베이스 이전을 반드시 실행해야 하는 두 가지 명령
    삭제: 삭제할 필드의 코드를 주석하고 데이터베이스 이전 명령을 실행합니다. ==하지만 이것은 절대 삭제하지 마십시오==
    데이터의 증가와 조사
    검색:
    def login(request):
        if request.method == 'POST':
            username = request.POST.get("username")
            password = request.POST.get("password")
            #             
            # 1.get()                                                     
            # res = models.Userinfo.objects.get(username=username)  # select id,username,password from userinfo where username='jason'
            # print(res)
            # print(res.username)
            # print(res.password)
            # 2.filter()                           
            #                                 
            # filter             and  
            res = models.Userinfo.objects.filter(username=username)  # select * from userinfo where username='jason' and password=123;
            # user_obj = res[0]
            # user_obj = res[0:3]
            # user_obj = res[-1]  #     filter                                 
            user_obj = res.first()  #  queryset     
            print(user_obj)
        return render(request,'login.html')
    

    증가:
    def reg(request):
        if request.method == 'POST':
            username = request.POST.get("username")
            password = request.POST.get("password")
            #               
            user_obj = models.Userinfo.objects.create(username=username,password=password)
            #    insert into userinfo(username,password) values('admin','666');
            # create                          
            print(user_obj)
        return render(request,'register.html')

    좋은 웹페이지 즐겨찾기