Django安装

#安装最新版本的Django
$ pip install django
#或者指定安装版本
pip install -v django==1.7.1
  • 项目创建

    $ django-admin startproject my_blog
  • 建立Django app

    $ python manage.py startapp article
  • 运行程序

    $ python manage.py runserver

pip安装python模块权限报错解决

windows下pip安装python模块时报错总结 - 温柔易淡 - 博客园

pycharm运行django程序

配置: runserver 0.0.0.0:8000

参考:pycharm上运行django服务器端、以及创建app方法

diango使用mysql数据库

设置数据库

Django项目建成后, 默认设置了使用SQLite数据库, 在my_blog/my_blog/setting.py中可以查看和修改数据库设置:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'csvt',
'USER': 'root',
'PASSWORD': 'root',
'HOST': '',
'PORT': '', }
}

同时要在init.py中写以下代码

import pymysql
pymysql.install_as_MySQLdb()

pymysql的安装

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字段来表示这个对象

  • CharField 用于存储字符串, max_length设置最大长度
  • TextField 用于存储大量文本
  • DateTimeField 用于存储时间, auto_now_add设置True表示自动设置对象增加时间

同步数据库

$ python manage.py makemigrations
$ python manage.py migrate

Django Shell

现在我们进入Django中的交互式shell来进行数据库的增删改查等操作

$ 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] # 可以进行类似于列表的操作

Django环境配置的更多相关文章

  1. Python Virtualenv运行Django环境配置

    系统: RHEL6.5 版本说明: Python-3.5.0 Django-1.10.4 virtualenv:为每个项目建立不同的/独立的Python环境,你将为每个项目安装所有需要的软件包到它们各 ...

  2. 最优Django环境配置

    2 最优Django环境配置 本章描述了我们认为对于中等和高级Django使用者来说最优的本地环境配置 2.1 统一使用相同的数据库引擎 一个常见的开发者错误是在本地开发环境中使用SQLite3,而在 ...

  3. Nginx+uWSGI+Django环境配置

    通常项目会部署在虚拟环境,虚拟环境的使用可以参考这里,点击前往 当然你也可以直接部署,这里不多说. 一.安装uWSGI 1.通过pip安装 pip install uwsgi 这里只说明了一种安装方式 ...

  4. 如何用Python做Web开发?——Django环境配置

    用Python做Web开发,Django框架是个非常好的起点.如何从零开始,配置好Django开发环境呢?本文带你一步步无痛上手.     概念 最近有个词儿很流行,叫做“全栈”(full stack ...

  5. django 环境配置.

    1. 一个虚拟环境对应一个 dajngo项目 2. mkvirtruenv pycham 创建Pure Python 新项目,不是Django 2018.3 其他版本 3.  Add Configur ...

  6. python and pycharm and django 环境配置

    python 安装   https://www.python.org/ 我的是win7 32位,下载exe文件傻瓜式安装…… cmd 输入命令 python  则安装成功 如果不能进入,则有可能是环境 ...

  7. linux+nginx+python+django环境配置

    Django是一个开放源代码的Web应用框架,由Python写成,它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的.python+django也是web开发者最受欢迎的框架.今天 ...

  8. django环境配置(基于命令行安装)

    一.django简介 Python服务端开发框架,Django是一个开放源代码的Web应用框架,由Python写成,Django采用了MVC的软件设计模式,即模型M,视图V和控制器C 二.安装配置dj ...

  9. 记一次Suse下的Django环境配置——第一弹

    一.安装Python 由于原有Suse自带的Python版本只有2.4,因此首先需要安装Python的高版本,在这里我选择使用Python2.7.9.PS:之前选择使用2.7.11版本,由于没有zli ...

随机推荐

  1. thusc滚粗记

    day0 下午到了北京,雾霾还是那么大.. 到宾馆报个到,和哥哥吃了一波饭,去不起西郊...只能去五道口了... 晚上和wyz队长见面,wyz队长好帅啊...没带手机拍照真是个错误TAT day1 今 ...

  2. Linux文件读写机制及优化方式

    导读 Linux是一个可控性强的,安全高效的操作系统.本文只讨论Linux下文件的读写机制,不涉及不同读取方式如read,fread,cin等的对比,这些读取方式本质上都是调用系统api read,只 ...

  3. BZOJ 2438: [中山市选2011]杀人游戏

    Description 给你一个有向图,求至少询问多少次能够得到全部点的信息. Sol Tarjan + 强连通分量缩点 + 判断. 先缩点,如果我们知道了强连通分量里的任意一个点,我们就可以知道这些 ...

  4. BZOJ 1004: [HNOI2008]Cards

    Description 给你一个序列,和m种可以使用多次的置换,用3种颜色染色,求方案数%p. Sol Burnside定理+背包. Burnside定理 \(N(G,\mathbb{C})=\fra ...

  5. 【Networking】go get 失败,代理配置

    推荐VPN: https://vpnso.com/   如果还是有问题,比如: 重新编译Git,使用openssl替换gnutls,方法如下: http://askubuntu.com/questio ...

  6. poj 3984

    http://poj.org/problem?id=3984 题目很简单,就是简单的BFS吧,主要的难点在于坐标的问题 这个呢,可以反其道而行之,就是你从(1,1)到(5,5),你肯定走过一次 走过一 ...

  7. Window 下 Qt5 使用QMediaplayer 进行视频播放 流播放问题

    int main(int argc, char *argv[]) { QApplication a(argc, argv); QWidget *widget = new QWidget; widget ...

  8. Starting MySQL.The server quit without updating PID file (xxxx.pid).[FAILED]

    mysql无法正常启动,查看日志报如下异常 --07T01::.929615Z [ERROR] Fatal error: Please read "Security" sectio ...

  9. iOS 目录的使用

    Table 1-1  Commonly used directories of an iOS app  Directory Description AppName.app This is the ap ...

  10. ui router 介绍

    1. 路由规则 rap框架页面路由基于ui-router实现 1.1 ui-router 一个基本的路由状态如下所示: 路由配置: $stateProvider .state('po',{ url:' ...