django大體框架

django流程

  1. 使用pycharm創建一個python虛擬環境
  2. 點擊file->settings->project interpreter->右上角的'+'號,搜索django,選中點擊install package即可
  3. 上面我們創建了一個虛擬環境並將我們需要的包導入進去
  4. 接下來便可以創建我們的項目,在pycharm終端中執行django-admin startproject web和python manage.py startapp app來創建我們的項目和目錄
  5. 現在配置項目,首先使用2步驟來導入pymysql庫,在__init__.py添加如下代碼
  6. import pymysql
    pymysql.install_as_MySQLdb()
  7. 配置settings如下
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'app',
    ]
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [
                os.path.join(BASE_DIR,'templates'),
            ],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'web',
            'USER':'root',
            'HOST':'127.0.0.1',
            'PASSWORD':'123456789',
        }
    }
  8. 在web下的urls.py中如下
    from django.contrib import admin
    from django.urls import path,include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('app/',include(('app.urls','app'),namespace='app')),
    ]
  9. 在app的目錄下創建urls.py並加入下面代碼
    from django.urls import path
    from . import views
    urlpatterns=[
        path('index/',views.index,name='index'),
    ]
  10. 在app/views.py加入代碼
    from django.shortcuts import render
    
    # Create your views here.
    from django.http import HttpResponse
    
    def index(request):
        return HttpResponse("hello")
  11. 在你的mysql數據庫中創建web數據庫
  12. 在終端中執行 python manage.py runserver 7777
  13. 在瀏覽器中輸入http://127.0.0.1/app/index即可

遷移數據庫

上面簡單的說明了一下一個項目的創建和運行

數據庫的遷移可以使用命令python manage.py makemigrations來創建遷移文件,這個命令執行後會在migrations下創建一個新的遷移文件,但是並沒有生成數據表,還需要使用python manage.py migrate命令來執行遷移文件才能生成數據表

我們來編寫一個user表

在app的models.py下輸入下面代碼

from django.db import models

# Create your models here.
class user(models.Model):
    username=models.CharField(max_length=100)
    password=models.CharField(max_length=100)

然後在終端中輸入python manage.py makemigrations和python manage.py migrate

我們在數據庫中查看一下
mysql> show tables;
+----------------------------+
| Tables_in_web              |
+----------------------------+
| app_user                   |
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_migrations          |
| django_session             |
+----------------------------+
11 rows in set (0.00 sec)

可以看到這個數據庫裏有很多的表,app_user是我們剛纔創建的表,app表示應用名稱,user表示類名
可以看到還有許多其他的表這是因爲在settings裏註冊了很多的app  如下
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app',
]

只有在這個列表裏註冊的應用纔會生成遷移文件並且生成表,這就是爲什麼要將app添加進去

django架構

django使用的是MTV架構

瀏覽器請求的流程是,拿我們這個例子。

url爲:http://127.0.0.1:7777/app/index/

首先會將請求的url去掉協議和主機名變爲app/index/會到達web/urls.py,和urlpatterns裏的元素進行匹配,會匹配到

path('app/',include(('app.urls','app'),namespace='app')),減去匹配到的字符串變爲index/,會進入app/urls.py繼續匹配,匹配到path('index/',views.index,name='index'),然後進入到views.py,執行index函數,這個函數返回一個HttpResponse對象給瀏覽器。
 

上面便是大體的流程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章