查看安裝的Django版本html
py -m django --version
複製代碼
若你用 pip 安裝 Django,你可使用 --upgrade
或 -U
標誌進行更新python
$ pip install -U Django
複製代碼
此文章是3.0版本mysql
進入正文sql
建立項目 |
打開命令行,cd 到一個你想放置你代碼的目錄,而後運行如下命令:shell
django-admin startproject mysite
複製代碼
mysite即項目名稱數據庫
看一下 startproject 建立的內容django
mysite/
manage.py //一個讓你用各類方式管理 Django 項目的命令行工具
mysite/
__init__.py
settings.py //Django 項目的配置文件
urls.py //Django 項目的 URL 聲明
asgi.py //做爲你的項目的運行在 ASGI 兼容的Web服務器上的入口
wsgi.py //做爲你的項目的運行在 WSGI 兼容的Web服務器上的入口
複製代碼
運行項目,命令行輸入如下命令瀏覽器
py manage.py runserver
複製代碼
成功的話,會看到如下輸出bash
Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
四月 01, 2020 - 15:50:53
Django version 3.0, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
複製代碼
瀏覽器訪問 https://127.0.0.1:8000/ 你將會看到一個「祝賀」頁面,隨着一隻火箭發射,服務器已經運行了。服務器
你也能夠更換端口
py manage.py runserver 8080
複製代碼
案例:建立投票應用 |
項目和應用有什麼區別?
應用是一個專門作某件事的網絡應用程序——好比博客系統,或者公共記錄的數據庫,或者小型的投票程序。
項目則是一個網站使用的配置和應用的集合。項目能夠包含不少個應用。應用能夠被不少個項目使用
處於 manage.py 所在的目錄下,而後運行這行命令來建立一個應用:
py manage.py startapp polls
複製代碼
這將會建立一個 polls 目錄,它的目錄結構大體以下:
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
複製代碼
編寫第一個視圖 |
在 polls/urls.py 中,輸入以下代碼:
polls/urls.py |
---|
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ] |
下一步是要在根 URLconf 文件中指定咱們建立的 polls.urls 模塊。在 mysite/urls.py 文件的 urlpatterns 列表裏插入一個 include(), 以下:
mysite/urls.py |
---|
from django.contrib import admin from django.urls import include, path urlpatterns = [path('polls/', include('polls.urls')), path('admin/', admin.site.urls), ] |
輸入命令:
python manage.py runserver
複製代碼
用瀏覽器訪問 http://localhost:8000/polls/, 你應該可以看見 "Hello, world. You're at the polls index." ,這是你在 index 視圖中定義的。
數據庫配置 |
默認是SQLite
原本想配mysql,待簡單學習後再配置
編輯 mysite/settings.py 文件前,先設置 TIME_ZONE 爲你本身時區,順便修改一下語言。
Django有自帶的默認應用
默認開啓的某些應用須要至少一個數據表,因此,在使用他們以前須要在數據庫中建立一些表。請執行如下命令:
py manage.py migrate
複製代碼
建立模型 |
好比在這個投票應用中,須要建立兩個模型:問題 Question 和選項 Choice。
polls/models.py |
---|
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) |
激活模型 |
首先得把 polls 應用安裝到咱們的項目裏
在配置類 INSTALLED_APPS 中添加設置。由於 PollsConfig 類寫在文件 polls/apps.py 中,因此它的點式路徑是 'polls.apps.PollsConfig'。在文件 mysite/settings.py 中 INSTALLED_APPS 子項添加點式路徑後,它看起來像這樣:
mysite/settings.py |
---|
INSTALLED_APPS = [ 'polls.apps.PollsConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] |
py manage.py makemigrations polls
py manage.py migrate
複製代碼
因此改變模型須要這三步:
嘗試API |
輸入如下命令進入交互python命令行
py manage.py shell
複製代碼
你能夠輸入如下來進行測試database
>>> from polls.models import Choice, Question # Import the model classes we just wrote.
# No questions are in the system yet.
>>> Question.objects.all()
<QuerySet []>
# Create a new Question.
# Support for time zones is enabled in the default settings file, so
# Django expects a datetime with tzinfo for pub_date. Use timezone.now()
# instead of datetime.datetime.now() and it will do the right thing.
>>> from django.utils import timezone
>>> q = Question(question_text="What's new?", pub_date=timezone.now())
# Save the object into the database. You have to call save() explicitly.
>>> q.save()
# Now it has an ID.
>>> q.id
1
複製代碼
Django管理頁面 |
建立一個管理員帳戶:
py manage.py createsuperuser
複製代碼
啓動:
py manage.py runserver
複製代碼
進入 http://127.0.0.1:8000/admin/
你會看到管理員頁面
在後臺能夠進行數據編輯
注意建立的應用要進行接口才能查看
打開 polls/admin.py 文件,把它編輯成下面這樣:
polls/admin.py |
---|
from django.contrib import admin from .models import Question admin.site.register(Question) |
再次打開管理頁面便可對應用的數據進行編輯