django基础(一)
一、創(chuàng)建django程序
1、終端:django-admin startproject sitename
2、IDE創(chuàng)建Django程序時(shí),本質(zhì)上都是自動(dòng)執(zhí)行上述命令
常用命令:
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.數(shù)據(jù)庫(kù)
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.靜態(tài)文件
1 STATICFILES_DIRS = ( 2 os.path.join(BASE_DIR,'static'), 3 )
四、路由系統(tǒng)
django中的路由系統(tǒng)和其他語(yǔ)言的框架有所不同,在django中每一個(gè)請(qǐng)求的url都要有一條路由映射,這樣才能將請(qǐng)求交給對(duì)一個(gè)的view中的函數(shù)去處理。其他大部分的Web框架則是對(duì)一類的url請(qǐng)求做一條路由映射,從而是路由系統(tǒng)變得簡(jiǎn)潔。
1.每個(gè)路由規(guī)則對(duì)應(yīng)一個(gè)view中的函數(shù)
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.根據(jù)app對(duì)路由規(guī)則進(jìn)行一次分類
1 url(r'^web/',include('web.urls')),
五、模型
django使用一種新的方式,即:關(guān)系對(duì)象映射(Object Relational Mapping,簡(jiǎn)稱ORM)。
django中遵循 Code Frist 的原則,即:根據(jù)代碼中定義的類來(lái)自動(dòng)生成數(shù)據(jù)庫(kù)表。
1、創(chuàng)建Model,之后可以根據(jù)Model來(lái)創(chuàng)建數(shù)據(jù)庫(kù)表
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 如果沒有的話,默認(rèn)會(huì)生成一個(gè)名稱為 id 的列,如果要顯示的自定義一個(gè)自增列,必須將給列設(shè)置為主鍵 primary_key=True。 3 models.CharField 字符串字段 4 必須 max_length 參數(shù) 5 models.BooleanField 布爾類型=tinyint(1) 6 不能為空,Blank=True 7 models.ComaSeparatedIntegerField 用逗號(hào)分割的數(shù)字=varchar 8 繼承CharField,所以必須 max_lenght 參數(shù) 9 models.DateField 日期類型 date 10 對(duì)于參數(shù),auto_now = True 則每次更新都會(huì)更新這個(gè)時(shí)間;auto_now_add 則只是第一次創(chuàng)建添加,之后的更新不再改變。 11 models.DateTimeField 日期類型 datetime 12 同DateField的參數(shù) 13 models.Decimal 十進(jìn)制小數(shù)類型 = decimal 14 必須指定整數(shù)位max_digits和小數(shù)位decimal_places 15 models.EmailField 字符串類型(正則表達(dá)式郵箱) =varchar 16 對(duì)字符串進(jìn)行正則表達(dá)式 17 models.FloatField 浮點(diǎn)類型 = double 18 models.IntegerField 整形 19 models.BigIntegerField 長(zhǎng)整形 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正則表達(dá)式) 28 models.GenericIPAddressField 字符串類型(ip4和ip6是可選的) 29 參數(shù)protocol可以是:both、ipv4、ipv6 30 驗(yàn)證時(shí),會(huì)根據(jù)設(shè)置報(bào)錯(cuò) 31 models.NullBooleanField 允許為空的布爾類型 32 models.PositiveIntegerFiel 正Integer 33 models.PositiveSmallIntegerField 正smallInteger 34 models.SlugField 減號(hào)、下劃線、字母、數(shù)字 35 models.SmallIntegerField 數(shù)字 36 數(shù)據(jù)庫(kù)中的字段有:tinyint、smallint、int、bigint 37 models.TextField 字符串=longtext 38 models.TimeField 時(shí)間 HH:MM[:ss[.uuuuuu]] 39 models.URLField 字符串,地址正則表達(dá)式 40 models.BinaryField 二進(jìn)制<br>23、models.ImageField 圖片<br>24、models.FilePathField 文件more fields
更多字段的參數(shù):
1 null=True 2 數(shù)據(jù)庫(kù)中字段是否可以為空 3 blank=True 4 django的 Admin 中添加數(shù)據(jù)時(shí)是否可允許空值 5 primary_key = False 6 主鍵,對(duì)AutoField設(shè)置主鍵后,就會(huì)代替原來(lái)的自增 id 列 7 auto_now 和 auto_now_add 8 auto_now 自動(dòng)創(chuàng)建---無(wú)論添加或修改,都是當(dāng)前操作的時(shí)間 9 auto_now_add 自動(dòng)創(chuàng)建---永遠(yuǎn)是創(chuàng)建時(shí)的時(shí)間 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 默認(rèn)值 18 verbose_name Admin中字段的顯示名稱 19 name|db_column 數(shù)據(jù)庫(kù)中的字段名稱 20 unique=True 不允許重復(fù) 21 db_index = True 數(shù)據(jù)庫(kù)索引 22 editable=True 在Admin里是否可編輯 23 error_messages=None 錯(cuò)誤提示 24 auto_created=False 自動(dòng)創(chuàng)建 25 help_text 在Admin中提示幫助信息 26 validators=[] 27 upload-tomore parameters
數(shù)據(jù)庫(kù)中表與表之間的關(guān)系:
1.一對(duì)多,models.ForeignKey(ColorDic)
2.一對(duì)一,models.OneToOneField(OneModel)
3.多對(duì)多,authors = models.ManyToManyField(Author)
2、數(shù)據(jù)庫(kù)操作
-
- 增加:創(chuàng)建實(shí)例,并調(diào)用save
- 更新:先獲取實(shí)例,再sava 或update(指定列)
- 刪除:先f(wàn)ilter再delete
- 獲取:單個(gè):get;所有:all
- 過濾
- 排序:order_by
- 返回第n-m條
- 指定映射:values
- 數(shù)量:count()
六、模版
1、模版的執(zhí)行
模版的創(chuàng)建過程,對(duì)于模版,其實(shí)就是讀取模版(其中嵌套著模版標(biāo)簽),然后將 Model 中獲取的數(shù)據(jù)插入到模版中,最后將信息返回給用戶。
2、模版語(yǔ)言
模板中也有自己的語(yǔ)言,該語(yǔ)言可以實(shí)現(xiàn)數(shù)據(jù)展示
轉(zhuǎn)載于:https://www.cnblogs.com/dwz1011/p/6542999.html
總結(jié)
以上是生活随笔為你收集整理的django基础(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GIT入门笔记(4)- GIT 安装
- 下一篇: nginx+iis实现负载均衡