1. 程式人生 > >Django搭建示例專案實戰與避坑細節

Django搭建示例專案實戰與避坑細節

Django 開發專案是很快的,有多快?看完本篇文章,你就知道了。 # 安裝 Django 前提條件:已安裝 Python。 Django 使用 pip 命令直接就可以安裝: ```shell pip install django ``` 如果安裝失敗,很可能是因為網路連線超時了,試試國內映象: ```shell pip install --default-timeout=6000 -i https://pypi.tuna.tsinghua.edu.cn/simple django ``` 這條命令同時延長了超時時間,提高成功率。 安裝完成後,通過 ` django-admin --version` 這條命令驗證。 # 建立 project 按住 Windows 鍵 + R,輸入 cmd 回車,接著 cd 到任意目錄:
或者先開啟目錄視窗,在位址列輸入 cmd 回車,不需要 cd(推薦):
在命令列視窗輸入命令建立 project: ```shell django-admin startproject mysite ``` 目錄結構如下(注意有 2 個 mysite 哦): ``` mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.py ``` # 建立 app Django 專案由 1 個 project 和多個 app 組成。project 存放專案配置,app 是網站各個功能的具體實現。 app 的放置目錄沒有限制,這裡先放在和 mysite 的同級目錄中,先進入外層的 mysite 資料夾: ``` cd mysite ``` 輸入命令建立: ```shell django-admin startapp polls ``` 目錄結構如下: ``` mysite/ polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py mysite/ manage.py ``` 使用 cmd 建立完 project 和 app 以後,就可以開啟 PyCharm,再 Open mysite 專案了:
為了讓 app 和 project 關聯起來,需要在 mysite/settings.py 檔案中新增配置: ```python INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'polls.apps.PollsConfig', # 新增 ] ``` 在 polls/models.py 檔案中新增資料模型: ```python from django.db import models class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') class Choice(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0) ``` # 連線 MySQL 前提條件:已安裝 MySQL,建立好資料庫。 Django 預設使用輕量級資料庫 SQLite,我們切換為常用的 MySQL。 修改 mysite/settings.py 中的資料庫配置: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '主機', 'PORT': 埠, 'NAME': '資料庫名', 'USER': '使用者名稱', 'PASSWORD': '密碼' } } ``` Django 預設通過底層呼叫 mysqlclient 這個庫和 MySQL 互動。但是 mysqlclient 非常不好安裝!我們改用 pymysql。 先安裝: ```shell pip install pymysql ``` 然後在與 mysite/settings.py 檔案同級的 `__init__` 檔案中新增: ```python import pymysql pymysql.version_info = (1, 4, 0, "final", 0) pymysql.install_as_MySQLdb() ``` # 資料遷移 資料遷移,指的是把程式碼中的資料模型,遷移到資料庫中,建立相應的表結構。 第一步,告訴 Django 資料模型有更新: ```shell python manage.py makemigrations polls ``` 執行後輸出: ``` Migrations for 'polls': polls/migrations/0001_initial.py - Create model Question - Create model Choice ``` 第二步,執行資料遷移同步: ``` python manage.py migrate ``` 執行後輸出: ``` Operations to perform: Apply all migrations: admin, auth, contenttypes, polls, sessions Running migrations: Rendering model states... DONE Applying polls.0001_initial... OK ``` 資料庫表就建立好了:
# 啟動專案 萬事俱備,只差 1 條啟動命令,在根目錄執行: ``` python manage.py runserver ``` 訪問 http://127.0.0.1:8000/,就可以看到來自 Django 老鐵的這發火箭了:
# 小結 本文是對《匆匆一眼》文章的補充。介紹瞭如何安裝 Django,建立 Django 的 project 和 app,連線 MySQL,執行資料遷移,最後啟動專案的實際操作步驟。思路很清晰。整體流程清楚了,可這些檔案都是幹嘛的呢? 參考資料: https://docs.djangoproject.com/en/3.1/intro/tut