django 学习笔记
啟動虛擬機:
workon bj18_py3
創建一個項目:
django-admin.py startproject mysite
啟動開發用服務器:從外層項目 mysite 目錄切換進去,若準備好了就運行命令:
python manage.py runserver
python manage.py runserver 8080
python manage.py runserver 0.0.0.0:8000 你將會看到命令行輸出如下內容:? Performing system checks...? 0 errors found? May 13, 2015 - 15:50:53? Django version 1.8, using settings 'mysite.settings'? Starting development server at http://127.0.0.1:8000/? Quit the server with CONTROL-C. ?? 請在你的 Web 瀏覽器中訪問 http://127.0.0.1:8000/。你會看到一個令人愉悅的,柔和的淡藍色 “Welcome to Django” 頁面。它工作正常! 也可以指定 ?python manage.py runserver 0.0.0.0:8001 ? 指定地址和端口。 數據庫設置: 以mysql數據庫為例,編輯 mysite/settings.py。 DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'mysite_db', #使用數據庫名稱,數據庫必須提前創建好'USER': 'root', #鏈接數據庫的用戶名'PASSWORD': 'itcast', #鏈接數據庫的密碼'HOST':'localhost', #配置數據庫的ip地址'PORT':'3306', #配置數據庫的端口號 } }
這時,啟動開發服務器出錯,原因是缺少MySQLdb模塊,用pip list 命令查看,
(bj18_py3) python@ubuntu:~/bj18/mysite$ pip list Package Version ------------- ------- Django 1.8.2 pip 19.1.1 pkg-resources 0.0.0 PyMySQL 0.9.3 setuptools 41.0.1 wheel 0.33.1這時,python3需要用pip install pymysql 安裝。安裝成功后在__init__.py文件加入:
?
import pymysql pymysql.install_as_MySQLdb()?
然后啟動開發用服務器。
創建模型: 項目 ( Projects ) vs. 應用 ( apps ) 項目與應用之間有什么不同之處?應用是一個提供功能的 Web 應用 – 例如:一個博客系統、一個公共記錄的數據庫或者一個簡單的投票系統。 項目是針對一個特定的 Web 網站相關的配置和其應用的組合。一個項目可以包含多個應 用。一個應用可以在多個項目中使用。?
要創建你的應用,請確認與 manage.py 文件在同一的目錄下并輸入以下命令:
python manage.py startapp polls在這簡單的投票應用中,我們將創建兩個模型: Poll 和 Choice 。 Poll 有:問題和發布日期兩個字段。 Choice 有兩個字段: 選項 ( choice ) 的文本內容和投票數。每一個 Choice 都與一個 Poll 關聯。這些概念都由簡單的 Python 類來表現。編輯 polls/models.py 文件后如下所示:
class Question(models.Model):??? question_text = models.CharField(max_length=200)????????? #一些 Field 實例是需要參數的。 例如 CharField 需要你指定~django.db.models.CharField.max_length 。
??? pub_date = models.DateTimeField('date published')??? #你可以在初始化 Field 實例時使用第一個位置的可選參數來指定人類可讀的名字。這在Django的內省部分中被使用到了,而且兼作文檔的一部分來增強代碼的可讀性。若字段未提供該參數,Django 將使用符合機器習慣的名字。在本例中,我們僅定義了一個符合人類習慣的字段名 Poll.pub_date 。對于模型中的其他字段,機器名稱就已經足夠替代人類名稱了。
class Choice(models.Model):
??? poll = models.ForeignKey(Question)?????????????????????? #定義了一個關聯。它告訴 Django 每一個 Choice 關聯一個 Poll 。
??? choice_text = models.CharField(max_length=200)
??? votes = models.IntegerField(default=0)?????????????? #一個 Field 實例可以有不同的可選參數; 在本例中,我們將 votes 的 default 的值設為 0。
?Django 支持常見數據庫的所有關聯:多對一(many-to-ones ),多對多( many-to-manys ) 和 一對一 ( one-to-ones )。
? 激活模型 : 有了這些模型代碼 Django 就可以做:為該應用創建對應的數據庫架構 (CREATE TABLE statements) 。 為 Poll 和Choice 對象創建 Python 訪問數據庫的 API 。 首先,我們需要告訴我們的項目已經安裝了 polls 應用。再次編輯 settings.py 文件,在 INSTALLED_APPS 設置中加入 'polls' 字符。因此結果如下所示: INSTALLED_APPS = ('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','polls', ) 現在 Django 已經知道包含了 polls 應用。讓我們運行如下命令: python manage.py makemigrations #生成遷移文件python mange.py migrate #執行遷移生成表
?
進入管理網站: 在sattings.py設置本地化 LANGUAGE_CODE = 'zh-CN'TIME_ZONE = 'Asia/Shanghai'?
?設置超級管理員賬戶密碼 python manage.py syncdbpython manage.py createsuperuser#創建超級用戶 我們需要告訴管理網站 Poll 對象要有一個管理界面。為此,我們在你的 polls 目錄下創建一個名為 admin.py 的文件,并添加如下內容: from django.contrib import admin from polls.models import Question,Choice
class QuestionAdmin(admin.ModelAdmin):
??? list_display = ["id","question_text","pub_date"]
class ChoiceAdmin(admin.ModelAdmin):
??? list_display = ["id","choice_text","votes","poll_id"]
admin.site.register(Question,QuestionAdmin)
admin.site.register(Choice,ChoiceAdmin)
?修改models.py文件,返回名字:
class Question(models.Model):question_text = models.CharField(max_length=200) #一些 Field 實例是需要參數的。 例如 CharField 需要你指定~django.db.models.CharField.max_length 。pub_date = models.DateTimeField('date published') #你可以在初始化 Field 實例時使用第一個位置的可選參數來指定人類可讀的名字。這在Django的內省部分中被使用到了,而且兼作文檔的一部分來增強代碼的可讀性。若字段未提供該參數,Django 將使用符合機器習慣的名字。在本例中,我們僅定義了一個符合人類習慣的字段名 Poll.pub_date 。對于模型中的其他字段,機器名稱就已經足夠替代人類名稱了。def __str__(self):return self.question_text class Choice(models.Model):poll = models.ForeignKey(Question) #定義了一個關聯。它告訴 Django 每一個 Choice 關聯一個 Poll 。choice_text = models.CharField(max_length=200)votes = models.IntegerField(default=0) #一個 Field 實例可以有不同的可選參數; 在本例中,我們將 votes 的 default 的值設為 0。def __str__(self):return self.choice_text?
?
? ? ? ? ? ? ? ? posted on 2019-07-03 07:17 qiaoliang0302 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/ql0302/p/11124158.html
總結
以上是生活随笔為你收集整理的django 学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS 安装Nginx
- 下一篇: windows10环境运用SSH和Swi