首页 > IT职业 > IT职场 > django 快速入门
Djangoæ¯Pythonè¯è¨ç¼åçä¸ä¸ªå
¨æ å¼Webæ¡æ¶ï¼å¯ä»¥å¸®å©æä»¬å¿«éç¼åä¸ä¸ªå
·ææ°æ®åºåè½ãå¢å æ¥æ¹ãåå°ç®¡ççåè½çç½ç«ãåå¦ä½ åªéè¦ä¸äºå¾ç®åçåè½ï¼ä½¿ç¨flaskå¯è½æ¯ä¸ªæ´å¥½çéæ©ã使¯å¦æä½ æ³å¿«éå®ç°ä¸ä¸ªXX管çç³»ç»ï¼é£ä¹ç¨Djangoç»å¯¹æ¯ä¸ªå¥½åæ³ãæ¬æåèäºDjango宿¹ææ¡£çTutorialsãå¦å¤æè¿éç¨çç»ç«¯æ¯Powershellï¼å¦ææäºå½ä»¤ä¸è½è¿è¡ï¼å»æåé¢ç.ã
é¦å å®è£ Djangoå ï¼ç°å¨Djangoå·²ç»å°äº2.0çæ¬ï¼å¦æè¿å¨ä½¿ç¨1.11请尽快åçº§ãæ§çæ¬ä»¥ååªä¿®å¤bugï¼ä¸ä¼æ·»å æ°åè½ã
pip install django
Djangoå®è£
好ä¹åï¼ä¼é带ä¸ä¸ªå½ä»¤è¡å·¥å
·django-adminï¼å¯ä»¥å¸®å©æä»¬ç®¡çDjango项ç®ãæä»¬å¯ä»¥ä½¿ç¨ä¸é¢çå½ä»¤å建ä¸ä¸ªæ°çDjangoé¡¹ç®æ¨¡æ¿ãè¿æ ·ä¼å建django_sampleæä»¶å¤¹ï¼é¡¹ç®æä»¶å°±å¨å
¶ä¸ãå¦å¤éè¦æ³¨æé¡¹ç®æä»¶å¤¹æå¥½æ¯ä¸ªæ§åä¸ç¹çï¼ä¸è¦ådjangoãsysè¿æ ·çç¬¬ä¸æ¹åºæè
pythonç³»ç»åºéåã
django-admin startproject hello_django
å建好项ç®ä¹åï¼æä»¬è¿å ¥é¡¹ç®æä»¶å¤¹ä¸ãç¨ä¸é¢çå½ä»¤å°±å¯ä»¥è¿è¡Django项ç®äºãé»è®¤æ åµä¸ï¼æä»¬å¯ä»¥éè¿http://127.0.0.1:8000/æ¥è®¿é®æ£å¨è¿è¡ç项ç®ãç±äºæ²¡æä»»ä½é¡µé¢ï¼æä»¥ä¼æ¾ç¤ºè¿ä¹ä¸ä¸ªè°è¯çªå£ã
python manage.py runserver

è¿è¡æå
å¨Django项ç®ä¸ï¼app表示æ´å°çä¸ä¸ªåè½åä½ï¼æ¯æ¹è¯´å¨ä¸ä¸ªå客管çç³»ç»ä¸ï¼å¯¹å客çå¢å æ¥æ¹çåè½å°±åºè¯¥èåå¨ä¸ä¸ªappä¸ãè¿å
¥é¡¹ç®ç®å½ä¸ï¼ç¨startappå½ä»¤å建appã
cd .hello_django django-admin startapp hello
è¿æ¶å项ç®ç®å½ç»æåºè¯¥ç±»ä¼¼è¿æ ·ã

ç®å½ç»æ
为äºè®©djangoå
å«å建çappï¼æä»¬è¿éè¦æ¿æ´»appãæå¼é
ç½®æä»¶ï¼æ¾å°INSTALLED_APPSï¼ç¶åææä»¬å建çappé
置添å è¿å»ï¼è¿æ ·djangoæè½ä½¿ç¨æä»¬çappã
INSTALLED_APPS = [    'hello.apps.HelloConfig',    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles', ]
æå¼é
ç½®æä»¶settings.pyï¼æ¾å°æ°æ®åºä¸è¡ï¼å¯ä»¥çå°å¦ä¸çé
ç½®ã
DATABASES = {    'default': {        'ENGINE': 'django.db.backends.sqlite3',        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
妿æä»¬è¿æ¶å使ç¨python .manage.py migrateå½ä»¤çææ°æ®åºè¡¨ï¼å°±ä¼å¨é¡¹ç®ä¸åºç°ä¸ä¸ªdb.sqlite3æä»¶ï¼è¿å°±æ¯é»è®¤çæ°æ®åºæä»¶ï¼ä½¿ç¨IDEAå³é®ç¹å»å¹¶éæ©As DataSourceå°±å¯ä»¥å°å
¶ä½ä¸ºæ°æ®åºæå¼ãç¶åæä»¬ä¼çå°çæäº10å¤ä¸ªæ°æ®åºè¡¨ï¼è¿æ¯Djangoç¨åºå卿°æ®çæç表ã

djangoç³»ç»è¡¨
é¤äºsqliteæ°æ®åºï¼djangoè¿æ¯æPOstgreSQLãMySQLãOracleè¿å ä¸ªæ°æ®åºãå¦ææ·»å ç¬¬ä¸æ¹åç«¯æ¯æï¼è¿å¯ä»¥ä½¿ç¨SQL ServerãIBM DB2çæ°æ®åºãä¾å¦æç°å¨åå¤ä½¿ç¨PostgreSQLæ°æ®åºï¼å°±ä¿®æ¹ä¸ºä¸é¢çé ç½®ãè¿æ¶åNAME屿§çæä¹å°±æ¯æ°æ®åºçååãå¦å¤å¿ é¡»ç¡®ä¿æ°æ®åºäºå åå¨ï¼djangoå¯ä»¥èªå¨å建表ï¼ä½æ¯ä¸è½èªå¨åå»ºæ°æ®åºã
DATABASES = {    'default': {        'ENGINE': 'django.db.backends.postgresql',        'NAME': 'test',        'USER': 'postgres',        'PASSWORD': '12345678',        'HOST': '127.0.0.1',        'PORT': '5432',
    }
}
djangoæ¯æORM模åï¼ä¹å°±æ¯è¯´æä»¬å¯ä»¥ä¸ä½¿ç¨SQLè¯å¥å°±å¯¹æ°æ®è¿è¡å¢å æ¥æ¹ãæä»¬è¦åçå°±æ¯å¨æ¨¡å䏿å®åæ°æ®åºçå ³ç³»ã
æå¼hello appä¸çmodels.pyæä»¶ï¼ç¶åæ·»å ä¸é¢ä¸¤ä¸ªæ¨¡åãè¿ä¸¤ä¸ªæ¨¡åæ¯å® ç©å主人çå
³ç³»ãå¦æä½¿ç¨è¿å
¶ä»ORMæ¡æ¶æ¯å¦Hibernateä¹ç±»çè¯ï¼å¯¹è¿ç§ç»æåºè¯¥é常çæãæä»¬å¨å®ä¹æ¨¡åçæ¶åæå®æ¯ä¸ä¸ªå段çååãé¿åº¦ãæ¯å¦å¯ä¸çä¿¡æ¯ãå¼å¾æ³¨æçæ¯ï¼å¦æéè¦çå¼åªå¯è½æ¯å 个åºå®å¼ï¼å¯ä»¥å®ä¹ä¸ä¸ªå
ç»ï¼è¯¥å
ç»æä¸å¯¹å¼ææï¼ç¬¬ä¸ä¸ªå¼æ¯å®é
å卿°æ®åºä¸çå¼ï¼ç¬¬äºä¸ªæ¯ç»äººç±»æ¾ç¤ºçå好å¯è¯»å¼ï¼ï¼ç¶åä¼ å
¥choicesåæ°ãmodels.ForeignKeyç¨æ¥æå®å¤é®çº¦æï¼è¿æä¸äºå
¶ä»ç对åºå
³ç³»ä¾å¦å¤å¯¹å¤ãä¸å¯¹ä¸çå°±ä¸ä»ç»äºã
from django.db import modelsclass Owner(models.Model):
    GENDER = (
        ('M', 'MALE'),
        ('F', 'FEMALE')
    )
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=30, unique=True)
    gender = models.CharField(max_length=1, choices=GENDER)
    birthday = models.DateField()class Pet(models.Model):
    TYPE = (
        ('C', 'Cat'),
        ('D', 'Dog')
    )
    id = models.AutoField(primary_key=True)
    owner = models.ForeignKey(Owner, on_delete=models.CASCADE)
    name = models.CharField(max_length=50)
    type = models.CharField(max_length=1, choices=TYPE)
ä¸é¢æä»¬å建äºä¸¤ä¸ªæ¨¡åï¼å®é ä¸ï¼åªè¦æä»¬å¯¹æ¨¡åè¿è¡äºæ´æ¹ï¼å°±åºè¯¥ä½¿ç¨ä¸é¢çå½ä»¤çæè¿äºæ´æ¹ã
python manage.py makemigrations hello Migrations for 'hello':   hellomigrations
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2976/viewspace-2806671/ ,如需转载,请注明出处,否则将追究法律责任。