arcgis模型構建器教程,網站搭建 (第01天) 模型設計

 2023-11-18 阅读 18 评论 0

摘要:一、前言   網站已經成功部署好多天了,今天突然發現以前在開發過程中遇到的問題沒有被好好的記錄下來,或者說是沒有被保存。這樣肯定是不可取的,這會讓我陷入問題的輪回中,重復思考著如何解決一個問題,那就太花費時間和精力了。所以

一、前言

  網站已經成功部署好多天了,今天突然發現以前在開發過程中遇到的問題沒有被好好的記錄下來,或者說是沒有被保存。這樣肯定是不可取的,這會讓我陷入問題的輪回中,重復思考著如何解決一個問題,那就太花費時間和精力了。所以,現在就盡可能地恢復一些記憶和還原當時做網站的經歷,日后肯定會感謝今天的自己。

二、模型設計

arcgis模型構建器教程?  首先一些基礎知識如創建虛擬環境,創建項目已經在之前寫過的Django入門里面詳細介紹了,具體可以參照Django入門: (第一天) 開發環境,這里就直接進入主題-模型設計。

  模型設計也就是對需求的滿足,想要實現什么功能,模型就得怎么設計,因為我制作的是個人網站,所以我的設計應該是包含:

建立模型法?    1) 文章的標題文章的正文。

    2)文章的發表時間。

模型搭建游戲、    3)文章的修改時間。

    4)文章的摘要。

模型搭建。    5)文章的分類。

    6)文章的作者。

  為減少查詢數據集的負擔,需要將文章的分類和文章的作者作為外鍵引用,其代碼如下:

class Category(models.Model):"""Django 要求模型必須繼承 models.Model 類。Category 只需要一個簡單的分類名 name 就可以了。CharField 指定了分類名 name 的數據類型,CharField 是字符型,CharField 的 max_length 參數指定其最大長度,超過這個長度的分類名就不能被存入數據庫。"""name = models.CharField(u'分類', max_length=20)class Meta:verbose_name = '分類'verbose_name_plural = '分類'def __str__(self):return self.name            

  而Django自身提供了一個User類,可以直接引用這個外鍵,所以可不必另外建一個模型類。

  models代碼如下:

from django.db import models
from django.contrib.auth.models import User  # 引入USERclass Category(models.Model):"""Django 要求模型必須繼承 models.Model 類。Category 只需要一個簡單的分類名 name 就可以了。CharField 指定了分類名 name 的數據類型,CharField 是字符型,CharField 的 max_length 參數指定其最大長度,超過這個長度的分類名就不能被存入數據庫。"""name = models.CharField(u'分類', max_length=20)class Meta:verbose_name = '分類'verbose_name_plural = '分類'def __str__(self):return self.nameclass Post(models.Model):  """文章的數據庫表稍微復雜一點,主要是涉及的字段更多。"""# 文章標題# u'文章標題'可以在后臺顯示里面的字段名title = models.CharField(u'文章標題', max_length=70)# 文章正文,我們使用了 TextField。# 存儲比較短的字符串可以使用 CharField,但對于文章的正文來說可能會是一大段文本,因此使用 TextField 來存儲大段文本。body = TextField()# 這兩個列分別表示文章的創建時間和最后一次修改時間,存儲時間的字段用 DateTimeField 類型。# auto_now_add=True時間可以被確定為現在的時間,不需要在后臺對該字段名進行操作created_time = models.DateTimeField(u'創建時間', auto_now_add=True)modified_time = models.DateTimeField(u'修改時間', auto_now_add=True)# 文章摘要,可以沒有文章摘要,但默認情況下 CharField 要求必須存入數據,否則就會報錯。# 指定 CharField 的 blank=True 參數值后就可以允許空值了。# excerpt = models.CharField(u'摘要', max_length=200, blank=True)# 這里我把摘要注釋了,因為每次都要輸入摘要很麻煩,后面可以直接模板中采用過濾器truncatechars可自由提取文章前規定字數# 這是分類,分類的模型已經定義在上面。# 這里把文章對應的數據庫表和分類、標簽對應的數據庫表關聯了起來,但是關聯形式稍微有點不同。# 規定一篇文章只能對應一個分類,但是一個分類下可以有多篇文章,所以使用的是 ForeignKey,即一對多的關聯關系。# 而對于標簽來說,一篇文章可以有多個標簽,同一個標簽下也可能有多篇文章,所以使用 ManyToManyField,表明這是多對多的關聯關系。# 文章可以沒有標簽,因此為標簽 tags 指定了 blank=True。category = models.ForeignKey(Category)# 文章作者,這里 User 是從 django.contrib.auth.models 導入的。# django.contrib.auth 是 Django 內置的應用,專門用于處理網站用戶的注冊、登錄等流程,User 是 Django已經寫好的用戶模型。# 通過 ForeignKey 把文章和 User 關聯了起來。# 規定一篇文章只能有一個作者,而一個作者可能會寫多篇文章,因此這是一對多的關聯關系,和 Category 類似。# on_delete=models.CASCADE表示級聯刪除author = models.ForeignKey(User, on_delete=models.CASCADE)def __str__(self):return self.titleclass Meta:verbose_name = '文章'verbose_name_plural = '文章'ordering = ['-modified_time']

三、模型注冊

  這個時候雖然已經把模型定下來了,但是注意要將該應用注冊到seetings中,然后使用python manage.py createsuperuser創建一個超級用戶,然后在admin.py加入以下代碼,就可以在后臺顯示了。

from django.contrib import admin
from .models import Category, Post 
# 自定義
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):"""作用:自定義分類管理工具admin.ModelAdmin:繼承admin.ModelAdmin類"""# 在后臺顯示id值和分類名list_display = ('id', 'name')@admin.register(Post)
class PostAdmin(admin.ModelAdmin):"""作用:自定義文章管理工具admin.ModelAdmin:繼承admin.ModelAdmin類"""# 在后臺顯示id值,博文名,創建時間,修改時間,目錄,作者list_display = ('id', 'title', 'created_time', 'modified_time', 'category', 'author')    # 增加過濾框,且以文章分類作過濾器list_filter = ['category']# 增加文章標題搜索字段search_fields = ['title']# 后臺管理每頁顯示20篇文章標題list_per_page = 20

  原文出處:https://jzfblog.com/detail/18,文章的更新編輯以此鏈接為準。歡迎關注源站文章!

轉載于:https://www.cnblogs.com/djcoder/p/10726096.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/173927.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息