흰둥이는 반드시 삼판도끼, 정적 파일 설정, Request 대상 및 방법, pycharm과django 연결 데이터베이스, 필드의 삭제 수정과 데이터의 추가 조사를 할 것이다.
1021 작은 백은 반드시 삼판도끼, 정적 파일 설정, Request 대상 및 방법, pycharm과django 연결 데이터베이스, 필드의 삭제 수정과 데이터의 추가 조사를 할 것이다.
도끼
사용자가 접근할 수 있는 모든 자원은 프로그래머가 미리 폭로한 것입니다. 만약 노출이 없다면 사용자는 영원히 접근할 수 없습니다
django는 자동으로 리셋할 수 있지만, 때로는 반응 속도가 느려서, 코드를 다 쓰지 못했을 때 리셋할 수도 있습니다
삼판도끼 필요 가져오기:
from django.shortcuts import render,HttpResponse,redirect
HttpResponse(반환 문자열)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 매개 변수를 쓸 수 있는 형식
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.method
post가 요청한 데이터 가져오기: request.POST
get 요청이 가지고 있는 데이터 가져오기: request.GET
get과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')
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.