django基础(一)
一、創建django程序
1、終端:django-admin startproject sitename
2、IDE創建Django程序時,本質上都是自動執行上述命令
常用命令:
python manage.py runserver
python manage.py startapp appname
python manage.py syncdb
python manage.py makemigrations
python manage.py migrate
python manage.py shell
二、Django程序目錄
三、配置文件
?
1.數據庫
1 DATABASES = { 2 'default': { 3 'ENGINE': 'django.db.backends.mysql', 4 'NAME':'dbname', 5 'USER': 'root', 6 'PASSWORD': 'xxx', 7 'HOST': '', 8 'PORT': '', 9 } 10 }
2.模版
1 TEMPLATE_DIRS = ( 2 os.path.join(BASE_DIR,'templates'), 3 )
3.靜態文件
1 STATICFILES_DIRS = ( 2 os.path.join(BASE_DIR,'static'), 3 )
四、路由系統
django中的路由系統和其他語言的框架有所不同,在django中每一個請求的url都要有一條路由映射,這樣才能將請求交給對一個的view中的函數去處理。其他大部分的Web框架則是對一類的url請求做一條路由映射,從而是路由系統變得簡潔。
1.每個路由規則對應一個view中的函數
1 url(r'^index/(\d*)', views.index), 2 url(r'^manage/(?P<name>\w*)/(?P<id>\d*)', views.manage), 3 url(r'^manage/(?P<name>\w*)', views.manage,{'id':333}),
2.根據app對路由規則進行一次分類
1 url(r'^web/',include('web.urls')),
五、模型
django使用一種新的方式,即:關系對象映射(Object Relational Mapping,簡稱ORM)。
django中遵循 Code Frist 的原則,即:根據代碼中定義的類來自動生成數據庫表。
1、創建Model,之后可以根據Model來創建數據庫表
1 from django.db import models 2 3 class userinfo(models.Model): 4 name = models.CharField(max_length=30) 5 email = models.EmailField() 6 memo = models.TextField()
更多字段:
1 models.AutoField 自增列 = int(11) 2 如果沒有的話,默認會生成一個名稱為 id 的列,如果要顯示的自定義一個自增列,必須將給列設置為主鍵 primary_key=True。 3 models.CharField 字符串字段 4 必須 max_length 參數 5 models.BooleanField 布爾類型=tinyint(1) 6 不能為空,Blank=True 7 models.ComaSeparatedIntegerField 用逗號分割的數字=varchar 8 繼承CharField,所以必須 max_lenght 參數 9 models.DateField 日期類型 date 10 對于參數,auto_now = True 則每次更新都會更新這個時間;auto_now_add 則只是第一次創建添加,之后的更新不再改變。 11 models.DateTimeField 日期類型 datetime 12 同DateField的參數 13 models.Decimal 十進制小數類型 = decimal 14 必須指定整數位max_digits和小數位decimal_places 15 models.EmailField 字符串類型(正則表達式郵箱) =varchar 16 對字符串進行正則表達式 17 models.FloatField 浮點類型 = double 18 models.IntegerField 整形 19 models.BigIntegerField 長整形 20 integer_field_ranges = { 21 'SmallIntegerField': (-32768, 32767), 22 'IntegerField': (-2147483648, 2147483647), 23 'BigIntegerField': (-9223372036854775808, 9223372036854775807), 24 'PositiveSmallIntegerField': (0, 32767), 25 'PositiveIntegerField': (0, 2147483647), 26 } 27 models.IPAddressField 字符串類型(ip4正則表達式) 28 models.GenericIPAddressField 字符串類型(ip4和ip6是可選的) 29 參數protocol可以是:both、ipv4、ipv6 30 驗證時,會根據設置報錯 31 models.NullBooleanField 允許為空的布爾類型 32 models.PositiveIntegerFiel 正Integer 33 models.PositiveSmallIntegerField 正smallInteger 34 models.SlugField 減號、下劃線、字母、數字 35 models.SmallIntegerField 數字 36 數據庫中的字段有:tinyint、smallint、int、bigint 37 models.TextField 字符串=longtext 38 models.TimeField 時間 HH:MM[:ss[.uuuuuu]] 39 models.URLField 字符串,地址正則表達式 40 models.BinaryField 二進制<br>23、models.ImageField 圖片<br>24、models.FilePathField 文件more fields
更多字段的參數:
1 null=True 2 數據庫中字段是否可以為空 3 blank=True 4 django的 Admin 中添加數據時是否可允許空值 5 primary_key = False 6 主鍵,對AutoField設置主鍵后,就會代替原來的自增 id 列 7 auto_now 和 auto_now_add 8 auto_now 自動創建---無論添加或修改,都是當前操作的時間 9 auto_now_add 自動創建---永遠是創建時的時間 10 choices 11 GENDER_CHOICE = ( 12 (u'M', u'Male'), 13 (u'F', u'Female'), 14 ) 15 gender = models.CharField(max_length=2,choices = GENDER_CHOICE) 16 max_length 17 default 默認值 18 verbose_name Admin中字段的顯示名稱 19 name|db_column 數據庫中的字段名稱 20 unique=True 不允許重復 21 db_index = True 數據庫索引 22 editable=True 在Admin里是否可編輯 23 error_messages=None 錯誤提示 24 auto_created=False 自動創建 25 help_text 在Admin中提示幫助信息 26 validators=[] 27 upload-tomore parameters
數據庫中表與表之間的關系:
1.一對多,models.ForeignKey(ColorDic)
2.一對一,models.OneToOneField(OneModel)
3.多對多,authors = models.ManyToManyField(Author)
2、數據庫操作
-
- 增加:創建實例,并調用save
- 更新:先獲取實例,再sava 或update(指定列)
- 刪除:先filter再delete
- 獲取:單個:get;所有:all
- 過濾
- 排序:order_by
- 返回第n-m條
- 指定映射:values
- 數量:count()
六、模版
1、模版的執行
模版的創建過程,對于模版,其實就是讀取模版(其中嵌套著模版標簽),然后將 Model 中獲取的數據插入到模版中,最后將信息返回給用戶。
2、模版語言
模板中也有自己的語言,該語言可以實現數據展示
轉載于:https://www.cnblogs.com/dwz1011/p/6542999.html
總結
以上是生活随笔為你收集整理的django基础(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GIT入门笔记(4)- GIT 安装
- 下一篇: 卵巢早衰能看好吗