Django安裝 html
#安裝最新版本的Django
$ pip install django
#或者指定安裝版本
pip install -v django==1.7.1
pip安裝python模塊權限報錯解決
windows下pip安裝python模塊時報錯總結 - 溫柔易淡 - 博客園 java
pycharm運行django程序
配置: runserver 0.0.0.0:8000
參考:pycharm上運行django服務器端、以及建立app方法 python
設置數據庫
Django項目建成後, 默認設置了使用SQLite數據庫, 在my_blog/my_blog/setting.py中能夠查看和修改數據庫設置: mysql
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'csvt',
'USER': 'root',
'PASSWORD': 'root',
'HOST': '',
'PORT': '',
}
}
同時要在init.py中寫如下代碼 sql
import pymysql
pymysql.install_as_MySQLdb()
pymysql的安裝 shell
pip install PyMySQL
建立models
在my_blog/article/models.py下編寫以下程序:數據庫
from django.db import models
# Create your models here.
class Article(models.Model) :
title = models.CharField(max_length = 100) #博客題目
category = models.CharField(max_length = 50, blank = True) #博客標籤
date_time = models.DateTimeField(auto_now_add = True) #博客日期
content = models.TextField(blank = True, null = True) #博客文章正文
#python2使用__unicode__, python3使用__str__
def __str__(self) :
return self.title
class Meta: #按時間降低排序
ordering = ['-date_time']
其中str(self) 函數Article對象要怎麼表示本身, 通常系統默認使用 來表示對象, 經過這個函數能夠告訴系統使用title字段來表示這個對象django
同步數據庫 windows
$ python manage.py makemigrations
$ python manage.py migrate
Django Shell
如今咱們進入Django中的交互式shell來進行數據庫的增刪改查等操做ruby
$ python manage.py shell
Python 3.4.2 (v3.4.2:ab2c023a9432, Oct 5 2014, 20:42:22)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>
這裏進入Django的shell和python內置的shell是很是相似的
>>> from article.models import Article
>>> #create數據庫增長操做
>>> Article.objects.create(title = 'Hello World', category = 'Python', content = '咱們來作一個簡單的數據庫增長操做')
<Article: Article object>
>>> Article.objects.create(title = 'Django Blog學習', category = 'Python', content = 'Django簡單博客教程')
<Article: Article object>
>>> #all和get的數據庫查看操做
>>> Article.objects.all() #查看所有對象, 返回一個列表, 無對象返回空list
[<Article: Article object>, <Article: Article object>]
>>> Article.objects.get(id = 1) #返回符合條件的對象
<Article: Article object>
>>> #update數據庫修改操做
>>> first = Article.objects.get(id = 1) #獲取id = 1的對象
>>> first.title
'Hello World'
>>> first.date_time
datetime.datetime(2014, 12, 26, 13, 56, 48, 727425, tzinfo=<UTC>)
>>> first.content
'咱們來作一個簡單的數據庫增長操做'
>>> first.category
'Python'
>>> first.content = 'Hello World, How are you'
>>> first.content #再次查看是否修改爲功, 修改操做就是點語法
'Hello World, How are you'
>>> #delete數據庫刪除操做
>>> first.delete()
>>> Article.objects.all() #此時能夠看到只有一個對象了, 另外一個對象已經被成功刪除
[<Article: Article object>]
Blog.objects.all() # 選擇所有對象
Blog.objects.filter(caption='blogname') # 使用 filter() 按博客題目過濾
Blog.objects.filter(caption='blogname', id="1") # 也能夠多個條件
#上面是精確匹配 也能夠包含性查詢
Blog.objects.filter(caption__contains='blogname')
Blog.objects.get(caption='blogname') # 獲取單個對象 若是查詢沒有返回結果也會拋出異常
#數據排序
Blog.objects.order_by("caption")
Blog.objects.order_by("-caption") # 倒序
#若是須要以多個字段爲標準進行排序(第二個字段會在第一個字段的值相同的狀況下被使用到),使用多個參數就能夠了
Blog.objects.order_by("caption", "id")
#連鎖查詢
Blog.objects.filter(caption__contains='blogname').order_by("-id")
#限制返回的數據
Blog.objects.filter(caption__contains='blogname')[0]
Blog.objects.filter(caption__contains='blogname')[0:3] # 能夠進行相似於列表的操做