国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Django初級手冊1-項目和應用的創建與簡單的數據庫操作

2019-11-14 17:50:05
字體:
來源:轉載
供稿:網友

創建項目

 django-admin.py startPRoject mysite

1. 目錄結構

mysite/ #項目的名稱  manage.py #可通過命令和項目進行交互的文件  mysite/ #項目的實際文件夾    __init__.py #空文件,告訴python這個目錄是個python包    settings.py #該項目的配置文件    urls.py #項目的URL聲明,dispatch文件    wsgi.py #項目wscgi的一個入口

2. 啟動開發機

只用于開發環境,不能用于生產環境!
開發環境支持熱啟動

python manage.py runserver #default 8000#如果主機想訪問虛擬機需要指定ip和端口python manage.py runserver 0.0.0.0:8000

3. 數據庫

需求MySQLdb

pip2.7 install mysql-python -i http://pypi.douban.com/simple

settings.py文件中進行設置

#mysql的數據庫必須提前建好DATABASES = {    'default': {#        'ENGINE': 'django.db.backends.sqlite3',#        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),        'ENGINE': 'django.db.backends.mysql',        'NAME': 'test',        'USER': 'root',        'PASSWord': '123456',        'HOST': '127.0.0.1',        'PORT': '3306',    }}#修改時區#TIME_ZONE = 'UTC'TIME_ZONE = 'Asia/Shanghai'#默認appsINSTALLED_APPS = (    'django.contrib.admin', #管理頁面    'django.contrib.auth', #權限系統    'django.contrib.contenttypes', #內容框架    'django.contrib.sessions', #回話框架    'django.contrib.messages', #消息框架    'django.contrib.staticfiles', #管理靜態內容框架)#此命令會安裝上述的app,并生成對應的表,在此建立系統管理員帳號和密碼python manage.py syncdb

創建模型

app完成某個特定的功能,諸如微博系統,公共記錄數據庫亦或是一個簡單的投票程序。
project是若干配置文件與許多app組成的特殊網站。
project可以包含很多app,app也可用于多個project。

python manage.py startapp polls

這會生成

polls/    __init__.py    admin.py    models.py    tests.py    views.py

首先應該定義模型。
模型是關于數據的獨立、限定的資源。它包括要存儲的數據的必要的字段和行為。
Django遵循DRY原則,即Don't repeat youself——每一個獨立的概念或數據都存儲在一個地方,并且存儲一份。
定義所有的模型,關于投票,創建投票和選擇兩個模型,投票包括一個問題和一個發起日期,選擇包括選擇的內容和投票計數。每一個選擇應該關聯一個投票。

    from django.db import models    class Poll(models.Model):        question = models.CharField(max_length=200)        pub_date = models.DateTimeField('date published')    class Choice(models.Model):        poll = models.ForeignKey(Poll)        choice_text = models.CharField(max_length=200)        votes = models.IntegerField(default=0)

每個模型對應一個類,每個類繼承自models.Model,每個類對應一張表。
每個類成員對應該表的列,并且有自己的類型。有些參數是必須的例如max_length,它不只是數據庫的模式,還包括頁面的驗證。而整數類型的默認值是可選的。
最后類之間的關系用外鍵來描述。該處需要注意的是,poll會自動處理為poll_id加到

激活模型

首先應該在settings.py中添加該應用。

INSTALL_APPS = (    ...    ...    'polls',)

然后鍵入命令,觀察models生成的SQL語句。

python manage.py sql polls

這里有一些額外的命令可以觀察實際的構成。

python manage.py validate #檢查錯誤,尤其是構建apps的model后檢查,再運行syncdb之前python manage.py sqlcustom polls #輸出應用定義的custom sql statementpython manage.py sqlclear polls #輸出應用中有必要DROP TABLE的語句python manage.py sqlindexes pollspython manage.py sqlall polls #輸出sql sqlcustom sqlindexes的集合

然后要實際運行這些語句,在數據庫中實際建立他們。該語句只用于初次創建時

python manage.py syncdb

調用API來工作

#進入互動界面python manage.py shell>>> from polls.models import Poll, Choice#顯示所有實例>>> Poll.objects.all()[]>>> from django.utils import timezone#創建一個對象>>> p = Poll(question="What's new?", pub_date=timezone.now())#存入數據庫>>> p.save()#可使用p.question等修改,查看類成員函數,修改后再次save即可>>> Poll.objects.all()[<Poll: Poll object>] #這是由于__unicode__沒有設置的結果,class Poll(models.Model):    # ...    def __unicode__(self):  # Python 3: def __str__(self):        return self.question#這樣即可輸出>>> Poll.objects.all()[<Poll: What's new?>]#查找數據庫,filter(類成員名稱后雙下劃線,可以加入各種比較)#get可直接用來查找,其中pk可用來查找主鍵,PrivateKey>>> Poll.objects.filter(question__startswith='What')[<Poll: What's up?>]>>> current_year = timezone.now().year>>> Poll.objects.get(pub_date__year=current_year)<Poll: What's up?>

因為Poll是Choice的外鍵,所以Poll有如下的成員函數

>>> p.choice_set.all()[]>>> c = p.choice_set.create(choice_text='Just hacking again', votes=0)>>> p.choice_set.all()[<Choice: Not much>, <Choice: The sky>, <Choice: Just hacking again>]>>> p.choice_set.count()3# Choice也有如下的成員變量>>> c.poll<Poll: What's up?>#刪除某個記錄>>> c = p.choice_set.filter(choice_text__startswith='Just hacking')>>> c.delete()

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 翁牛特旗| 敖汉旗| 革吉县| 榆中县| 黄山市| 龙岩市| 德兴市| 罗甸县| 北宁市| 武鸣县| 奇台县| 临猗县| 收藏| 浦江县| 虎林市| 葫芦岛市| 象山县| 临海市| 湛江市| 石屏县| 定南县| 白银市| 临泉县| 新兴县| 贵南县| 孙吴县| 衡阳县| 来凤县| 青铜峡市| 商水县| 施甸县| 新龙县| 盈江县| 揭西县| 崇阳县| 合水县| 怀安县| 山东省| 聂拉木县| 永年县| 图们市|