第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法預(yù)填充 django 數(shù)據(jù)庫

無法預(yù)填充 django 數(shù)據(jù)庫

猛跑小豬 2021-09-02 16:46:50
所以我一直在遵循 Django 1.1 中的本指南,但我實際上是在使用 Django 2 來預(yù)填充 Django 數(shù)據(jù)庫我使用的是 SQLite 數(shù)據(jù)庫,這是我使用 Faker 庫的代碼,但它不會在我運(yùn)行時運(yùn)行想在 CMD 中運(yùn)行它。如果可以,請你幫助我:這是我的第一個文件,它是用于填充數(shù)據(jù)庫的腳本:(populate_first_app.py)import osos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'first_project.settings')import djangodjango.setup()## FAKE POPULATION SCRIPT:import randomfrom first_app.models import AccessRecord,Webpage,Topicfrom faker import Faker# Creating a fake generator:fakegen = Faker()topics = ['Search', 'Social', 'Marketplace', 'News', 'Games']def add_topic():    t = Topic.objects.get_or_create(top_name=random.choice(topics))[0]    t.save()    return tdef populate(N = 5):for entry in range(N):    # GET THE TOPIC FOR THE ENTRY:    top = add_topic()    # Create the fake data for that entry:    fake_url = fakegen.url()    fake_date = fakegen.date()    fake_name = fakegen.company()    # Create the new webpage entry:    webpg = Webpage.objects.get_or_create(topic = top, url = fake_url, name = fake_name)[0]    # Create a fake access record for that webpage    acc_rec = AccessRecord.get_or_create(name = webpg, date = fake_date)[0]    if __name__ == '__main__':        print("Populating Script!")        populate(20)        print("Populating Complete!")最后,這是我在這個項目中唯一的應(yīng)用程序的 models.py 文件:    from django.db import modelsclass Topic(models.Model):    top_name = models.CharField(max_length = 255, unique = True)    def __str__(self):        return self.top_nameclass Webpage(models.Model):    # A Foreign key is grabbed from another table    topic = models.ForeignKey(Topic, on_delete=None)    name = models.CharField(max_length=264, unique=True)    url = models.URLField(unique=True)    def __str__(self):        return self.nameclass AccessRecord(models.Model):    name = models.ForeignKey(Webpage, on_delete=None)    date = models.DateField()    def __str__(self):        # we cast it into string because self.date is a date object        return str(self.date)
查看完整描述

3 回答

?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗 獲得超3個贊

如果沒有錯誤消息,還不清楚您的問題是什么,但我的預(yù)感是您未能在獨立腳本中引導(dǎo) Django 環(huán)境。

Django 有一個特殊的工具來構(gòu)建你可以在 Django 環(huán)境中運(yùn)行的“命令”,而不必像在 populate_first_app.py 中那樣“設(shè)置它”。

在上面的示例中,您希望將“populate_first_app.py”移動到“first_app/management/commands/populate_first_app.py”。然后你需要將你的函數(shù)放在 BaseCommand 中:


from django.core.management.base import BaseCommand, CommandError

from polls.models import Question as Poll

# .. other imports

class Command(BaseCommand):

   help = 'Populates test data in first_app'


   def add_arguments(self, parser):

      parser.add_argument('n', type=int)


   def handle(self, *args, **options):

      fakegen = Faker()

      for entry in range(args.n):

          #.. generate each entry

一旦你有了這個命令,你就可以從 manage.py 運(yùn)行它:


manage.py populate_first_app -n 20

好處是當(dāng)別人想用這個的時候,跑起來就可以看到了


manage.py 幫助


查看完整回答
反對 回復(fù) 2021-09-02
  • 3 回答
  • 0 關(guān)注
  • 215 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號