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] # 能够进行相似于列表的操做