Django安装

  1. #安装最新版本的Django
  2. $ pip install django
  3. #或者指定安装版本
  4. 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中可以查看和修改数据库设置:

  1. DATABASES = {
  2. 'default': {
  3. 'ENGINE': 'django.db.backends.mysql',
  4. 'NAME': 'csvt',
  5. 'USER': 'root',
  6. 'PASSWORD': 'root',
  7. 'HOST': '',
  8. 'PORT': '',
  9. }
  10. }

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

  1. import pymysql
  2. pymysql.install_as_MySQLdb()

pymysql的安装

  1. pip install PyMySQL

创建models

在my_blog/article/models.py下编写如下程序:

  1. from django.db import models
  2. # Create your models here.
  3. class Article(models.Model) :
  4. title = models.CharField(max_length = 100) #博客题目
  5. category = models.CharField(max_length = 50, blank = True) #博客标签
  6. date_time = models.DateTimeField(auto_now_add = True) #博客日期
  7. content = models.TextField(blank = True, null = True) #博客文章正文
  8. #python2使用__unicode__, python3使用__str__
  9. def __str__(self) :
  10. return self.title
  11. class Meta: #按时间下降排序
  12. ordering = ['-date_time']

其中str(self) 函数Article对象要怎么表示自己, 一般系统默认使用 来表示对象, 通过这个函数可以告诉系统使用title字段来表示这个对象

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

同步数据库

  1. $ python manage.py makemigrations
  2. $ python manage.py migrate

Django Shell

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

  1. $ python manage.py shell
  2. Python 3.4.2 (v3.4.2:ab2c023a9432, Oct 5 2014, 20:42:22)
  3. [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
  4. Type "help", "copyright", "credits" or "license" for more information.
  5. (InteractiveConsole)
  6. >>>
  7. 这里进入Djangoshellpython内置的shell是非常类似的
  8. >>> from article.models import Article
  9. >>> #create数据库增加操作
  10. >>> Article.objects.create(title = 'Hello World', category = 'Python', content = '我们来做一个简单的数据库增加操作')
  11. <Article: Article object>
  12. >>> Article.objects.create(title = 'Django Blog学习', category = 'Python', content = 'Django简单博客教程')
  13. <Article: Article object>
  14. >>> #all和get的数据库查看操作
  15. >>> Article.objects.all() #查看全部对象, 返回一个列表, 无对象返回空list
  16. [<Article: Article object>, <Article: Article object>]
  17. >>> Article.objects.get(id = 1) #返回符合条件的对象
  18. <Article: Article object>
  19. >>> #update数据库修改操作
  20. >>> first = Article.objects.get(id = 1) #获取id = 1的对象
  21. >>> first.title
  22. 'Hello World'
  23. >>> first.date_time
  24. datetime.datetime(2014, 12, 26, 13, 56, 48, 727425, tzinfo=<UTC>)
  25. >>> first.content
  26. '我们来做一个简单的数据库增加操作'
  27. >>> first.category
  28. 'Python'
  29. >>> first.content = 'Hello World, How are you'
  30. >>> first.content #再次查看是否修改成功, 修改操作就是点语法
  31. 'Hello World, How are you'
  32. >>> #delete数据库删除操作
  33. >>> first.delete()
  34. >>> Article.objects.all() #此时可以看到只有一个对象了, 另一个对象已经被成功删除
  35. [<Article: Article object>]
  36. Blog.objects.all() # 选择全部对象
  37. Blog.objects.filter(caption='blogname') # 使用 filter() 按博客题目过滤
  38. Blog.objects.filter(caption='blogname', id="1") # 也可以多个条件
  39. #上面是精确匹配 也可以包含性查询
  40. Blog.objects.filter(caption__contains='blogname')
  41. Blog.objects.get(caption='blogname') # 获取单个对象 如果查询没有返回结果也会抛出异常
  42. #数据排序
  43. Blog.objects.order_by("caption")
  44. Blog.objects.order_by("-caption") # 倒序
  45. #如果需要以多个字段为标准进行排序(第二个字段会在第一个字段的值相同的情况下被使用到),使用多个参数就可以了
  46. Blog.objects.order_by("caption", "id")
  47. #连锁查询
  48. Blog.objects.filter(caption__contains='blogname').order_by("-id")
  49. #限制返回的数据
  50. Blog.objects.filter(caption__contains='blogname')[0]
  51. 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. NoSuchMethodException问题总结

    1.编译异常,这个很容易发现并解决: method真的没有 替换jar包没有clean project. 2.编译正常,运行报错 这是一个遇到之后让人纳闷的异常,脑袋不转弯的时候真的容易被卡住.这时只 ...

  2. mysql workbench建表时PK,NN,UQ,BIN,UN,ZF,AI

    1. [intrinsic column flags] (基本字段类型标识) - PK: primary key (column is part of a pk) 主键 - NN: not null ...

  3. HNU 12886 Cracking the Safe(暴力枚举)

    题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12886&courseid=274 解题报告:输入4个数 ...

  4. Android学习笔记(十一)——ListView的使用(下)

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! ListView 这个控件比较复杂, 就是因为它有很多的细节可以优化,下面我们在试试提高它的运行效率:一.提高 ...

  5. (备忘)android模拟器摄像头模拟

    Camera分Front Camera和Back Camera 通常我们模拟后摄像头就可以了 三个选项 none:表示没有摄像头,打开摄像应用会崩溃 emulated:系统模拟一个动态的画面--在黑白 ...

  6. CodeVS 2845 排序的代价

    Description 给你一个数列使他递增,交换两个元素的代价为两个数的和,最小化代价. Sol 置换群+离散化. 使一个数列恢复递增顺序,那么,他和他要到达的位置的数需要交换,这样就形成了一个置换 ...

  7. django中抽象基类的Foreignkey的定义

    class base(models.Model): user = models.ForeignKey(User) class Meta: abstract =True 以上是抽象基类的定义,只有一个公 ...

  8. jquery实现input输入框实时输入触发事件代码 ---jQuery 中bind(),live(),delegate(),on() 区别

    复制代码 代码如下: <input id="productName" name="productName" value="" /> ...

  9. Struts2学习笔记《三》

      Struts2的工作原理图: struts的用法:

  10. 【leetcode】Maximal Rectangle

    Maximal Rectangle Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle conta ...