亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python學(xué)習(xí)筆記之Django創(chuàng)建第一個(gè)數(shù)據(jù)庫模型的方法

 更新時(shí)間:2019年08月07日 13:31:05   作者:金陽  
今天小編就為大家分享一篇Python學(xué)習(xí)筆記之Django創(chuàng)建第一個(gè)數(shù)據(jù)庫模型的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

Django里面集成了SQLite的數(shù)據(jù)庫,對(duì)于初期研究來說,可以用這個(gè)學(xué)習(xí)。

第一步,創(chuàng)建數(shù)據(jù)庫就涉及到建表等一系列的工作,在此之前,要先在cmd執(zhí)行一個(gè)命令:

python manage.py migrate

這個(gè)命令就看成一個(gè)打包安裝的命令,它會(huì)根據(jù)mysite/settings.py的配置安裝一系列必要的數(shù)據(jù)庫表

第二步,我們要建立一個(gè)Model層,修改demo/model.py:

from django.db import models
classQuestion(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
classChoice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)

這個(gè)Model的內(nèi)容包括創(chuàng)建表(對(duì)象)、確定變量(字段)的類型,以及外鍵方面的信息

第三步,要激活Model,那么現(xiàn)在helloworld/setting.py中修改:

INSTALLED_APPS =[
'demo.apps.DemoConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

主要是加了第一行的內(nèi)容,這個(gè)在demo/apps下有的。目的是讓Django知道有demo這個(gè)app。

然后就在cmd下面運(yùn)行:

python manage.py makemigrations demo

可以看到在demo/migrations/0001_initial.py下面生成了很多代碼

繼續(xù)run這段代碼,就完成了建表工作:

python manage.py sqlmigrate demo 0001

再跑一下migrate命令,把這些model創(chuàng)建到數(shù)據(jù)庫表中

python manage.py migrate

第四步,也是比較好玩的了,就是要進(jìn)入到python django的shell中,執(zhí)行這個(gè)命令:

python manage.py shell

在這個(gè)里面,就可以通過命令行操作數(shù)據(jù)庫了

先引入剛才創(chuàng)建好的model:

from demo.models importQuestion,Choice

這個(gè)命令,打印出Question所有的對(duì)象:

Question.objects.all()

然后創(chuàng)建一個(gè)Question的對(duì)象(或數(shù)據(jù)):

from django.utils import timezone
q =Question(question_text="What's new?", pub_date=timezone.now())
q.save()
q.id
q.question_text
q.pub_date
q.question_text = "What's up?"
q.save()
Question.objects.all()

第五步,然后polls/models.py中添加以下代碼:

from django.db import models
from django.utils.encoding import python_2_unicode_compatible
@python_2_unicode_compatible# only if you need to support Python 2
classQuestion(models.Model):
# ...
def __str__(self):
return self.question_text
@python_2_unicode_compatible# only if you need to support Python 2
classChoice(models.Model):
# ...
def __str__(self):
return self.choice_text
import datetime
from django.db import models
from django.utils import timezone
classQuestion(models.Model):
# ...
def was_published_recently(self):
return self.pub_date >= timezone.now()- datetime.timedelta(days=1)

在這里__str__()是一個(gè)非常重要的方法,大概可以看成java里pojo對(duì)象的一個(gè)toString()方法

接下來,就可以在數(shù)據(jù)庫中進(jìn)行很多操作,在shell中輸入以下的代碼,就可以執(zhí)行對(duì)數(shù)據(jù)庫的增刪查改:

from polls.models importQuestion,Choice
Question.objects.all()
Question.objects.filter(id=1)
Question.objects.filter(question_text__startswith='What')
from django.utils import timezone
current_year = timezone.now().year
Question.objects.get(pub_date__year=current_year)
Question.objects.get(id=2)
Question.objects.get(pk=1)
q =Question.objects.get(pk=1)
q.was_published_recently()
q =Question.objects.get(pk=1)
q.choice_set.all()
q.choice_set.create(choice_text='Not much', votes=0)
q.choice_set.create(choice_text='The sky', votes=0)
c = q.choice_set.create(choice_text='Just hacking again', votes=0)
c.question
q.choice_set.all()
q.choice_set.count()
Choice.objects.filter(question__pub_date__year=current_year)
c = q.choice_set.filter(choice_text__startswith='Just hacking')
c.delete()

操作django Admin

Django的管理端可以管理站點(diǎn)、管理賬戶權(quán)限等等。

在cmd運(yùn)行以下的腳本創(chuàng)建賬戶:

python manage.py createsuperuser
Username: admin
Email address: admin@example.com
Password:**********
Password(again):*********
Superuser created successfully.

啟動(dòng)server:

python manage.py runserver 8081

訪問鏈接地址:

http://127.0.0.1:8081/admin/

登錄界面:

管理界面:

在demo/admin.py中添加代碼注冊(cè)對(duì)象:

from django.contrib import admin
from.models importQuestion
admin.site.register(Question)

刷新后即增加這個(gè)對(duì)象:

點(diǎn)擊Questions進(jìn)去:

這樣,就可以在圖形化的界面中執(zhí)行增刪查改了。

以上這篇Python學(xué)習(xí)筆記之Django創(chuàng)建第一個(gè)數(shù)據(jù)庫模型的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python讀取指定日期郵件的實(shí)例

    Python讀取指定日期郵件的實(shí)例

    今天小編就為大家分享一篇Python讀取指定日期郵件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • python pandas loc 布爾索引示例說明

    python pandas loc 布爾索引示例說明

    loc跟iloc的區(qū)別,首先loc是location的意思,和iloc中i的意思是指integer,所以它只接受整數(shù)作為參數(shù),詳情見下面
    2022-03-03
  • PyTorch詳解經(jīng)典網(wǎng)絡(luò)ResNet實(shí)現(xiàn)流程

    PyTorch詳解經(jīng)典網(wǎng)絡(luò)ResNet實(shí)現(xiàn)流程

    ResNet全稱residual neural network,主要是解決過深的網(wǎng)絡(luò)帶來的梯度彌散,梯度爆炸,網(wǎng)絡(luò)退化(即網(wǎng)絡(luò)層數(shù)越深時(shí),在數(shù)據(jù)集上表現(xiàn)的性能卻越差)的問題
    2022-05-05
  • python 遞歸遍歷文件夾,并打印滿足條件的文件路徑實(shí)例

    python 遞歸遍歷文件夾,并打印滿足條件的文件路徑實(shí)例

    下面小編就為大家?guī)硪黄猵ython 遞歸遍歷文件夾,并打印滿足條件的文件路徑實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • 一篇文章帶你了解谷歌這些大廠是怎么寫 python 代碼的

    一篇文章帶你了解谷歌這些大廠是怎么寫 python 代碼的

    這篇文章主要介紹了谷歌這些大廠怎么寫python代碼,我們寫代碼,往往還是按照其它語言的思維習(xí)慣來寫,那樣的寫法不僅運(yùn)行速度慢,代碼讀起來也費(fèi)盡,給人一種拖泥帶水的感覺,需要的朋友可以參考下
    2021-09-09
  • python 關(guān)鍵字與標(biāo)識(shí)符超詳細(xì)整理

    python 關(guān)鍵字與標(biāo)識(shí)符超詳細(xì)整理

    這篇文章主要給大家介紹了關(guān)于Python關(guān)鍵字、標(biāo)識(shí)符和變量的相關(guān)資料,Python關(guān)鍵詞是Python保留的具有特定含義的特殊詞語,用于執(zhí)行某些操作,Python標(biāo)識(shí)符是用戶定義的名稱,而變量是計(jì)算機(jī)內(nèi)存中的一塊區(qū)域,存儲(chǔ)對(duì)象的內(nèi)存地址,以便引用對(duì)象的值,需要的朋友可以參考下
    2022-03-03
  • Python中的命名元組簡單而強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)示例詳解

    Python中的命名元組簡單而強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)示例詳解

    namedtuple是Python中一個(gè)非常有用的數(shù)據(jù)結(jié)構(gòu),它提供了一種簡單的方式創(chuàng)建具有固定字段的輕量級(jí)對(duì)象,通過使用namedtuple,可以提高代碼的可讀性和可維護(hù)性,避免了使用類定義對(duì)象的復(fù)雜性,這篇文章主要介紹了Python中的命名元組簡單而強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下
    2024-05-05
  • 淺談python內(nèi)置函數(shù)callable的用法

    淺談python內(nèi)置函數(shù)callable的用法

    這篇文章主要介紹了淺談python內(nèi)置函數(shù)callable的用法, callable函數(shù)可用于判斷一個(gè)對(duì)象是否可以被調(diào)用,若對(duì)象可以被調(diào)用則返回True,反之則返回False,需要的朋友可以參考下
    2023-04-04
  • Python類屬性的延遲計(jì)算

    Python類屬性的延遲計(jì)算

    這篇文章主要為大家詳細(xì)介紹了Python類屬性的延遲計(jì)算,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • python爬蟲Scrapy框架:媒體管道原理學(xué)習(xí)分析

    python爬蟲Scrapy框架:媒體管道原理學(xué)習(xí)分析

    這篇文章主要介紹了python爬蟲Scrapy框架:媒體管道原理學(xué)習(xí)分析,有需要的朋友可以借鑒參考,希望可以對(duì)廣大一同學(xué)習(xí)的讀者朋友有所幫助
    2021-09-09

最新評(píng)論