创建应用

1 创建project

Django-admin startproject mysite

自动创建目录结构:

mysite/    #项目容器

Manage.py    #命令行工具

mysite/   #项目文件

__init__.py   #定义包的空文件

Settings.py   #配置文件

Urls.py  #路由文件

Wsgi.py #提供底层网络通信

2 启动服务器

Python manage.py runserver

查看运行

http://127.0.0.1:8000/

3 创建应用程序

Python manage.py polls

4 编写视图

from django.test import TestCase
from django.http import HttpResponse

# Create your tests here.
def index(request):
return HttpResponse('Hello,word!You are at the polls index')

新建urls.py

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$',views.index,name='index')
]

修改mysite/urls.py,添加如下内容:

from django.conf.urls import include

urlpatterns = [

url(r'^polls/',include('polls.urls')),

]

启动服务器

Python manage.py runserver

通过浏览器查看

http://127.0.0.1:8000/polls/

5 数据库安装

本示例使用的是mysql数据库.也可以使用其他,对应的配置如下:

Sqlite ’django.db.backends.sqlite3’

Postgresql ’django.db.backends.postgresql’,

Mysql ’django.db.backends.mysql’

Oracle ’django.db.backends.oracle’,

,修改mysite/setting.py,

DATABASES = {
'default': {
#sqlite
       # 'ENGINE': 'django.db.backends.sqlite3',
       # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

#mysql
'ENGINE':'django.db.backends.mysql',#引擎
'NAME':'jkx',#数据库名
'USER':'root',#用户名
'PASSWORD':'yue4512138',#密码
'HOST':'127.0.0.1',#数据库服务器ip
'PORT':'3306',#端口号
}
}

6 创建model模型

Polls/model.py

每个模型对应数据库中的一张表

'''
问题
'''
class
Question(models.Model):
    question_text=models.CharField(max_length=200)
    pub_date=models.DateTimeField('date published')

'''
选票
'''
class
Choice(models.Model):
    question=models.ForeignKey(Question,on_delete=models.CASCADE)
    choice_text=models.CharField(max_length=200)
    votes=models.IntegerField(default=0)

7 注册应用

Mysite/settings.py

INSTALLED_APPS = [
'django.contrib.admin',#admin站点
'django.contrib.auth',#身份话证系统
'django.contrib.contenttypes',#内容类型框架
'django.contrib.sessions',#会话框架
'django.contrib.messages',#消息框架
'django.contrib.staticfiles',#静态文件管理框架
'polls.apps.PollsConfig'
]

重新生成模型的数据表结构,为改动创建迁移记录

python manage.py makemigrations polls

对数据库进行真正的迁移

Python manage.py sqlmigrate polls 0001

//在不丢失数据的同时,实时动态更新数据库

python manage.py migrate

8 使用api

D:\workspace_python\mysite>python manage.py shell

Python 3.6.0b2 (v3.6.0b2:b9fadc7d1c3f, Oct 10 2016, 20:36:51) [MSC v.1900 32 bit (Intel)] on win32

Type "help", "copyright", "credits" or "license" for more information.

(InteractiveConsole)

>>>

>>> import django

>>> django.setup()#重启django

>>> from polls.models import Question,Choice#导入操作模块

>>> Question.objects.all()#查询question列表

<QuerySet []>

>>> from django.utils import timezone#导入模块

>>> q=Question(question_text="What is your name?",pub_date=timezone.now())#创建question对象

>>> q.save()#保存到数据库中

>>> q.id

1

>>> q.question_text

'What is your name?'

>>> q.pub_date

datetime.datetime(2016, 10, 21, 9, 34, 11, 36818, tzinfo=<UTC>)

>>> q.question_text='what is up?'#修改属性值

>>> q.save()#保存到数据库中

>>> Question.objects.all()#查询问题列表

<QuerySet [<Question: Question object>]>#看不到问题详细

需要修改model.py

两个模型中分别添加:

#想使用python2版本时才能使用
from django.utils.encoding import

python_2_unicode_compatible

def __str__(self):#python2版本中使用的是__unique__
return self.question_text

def __str__(self):
return self.choice_text

修改完成后,重新启动shell

>>> from polls.models import Question,Choice

>>> Question.objects.all()

<QuerySet [<Question: what is up?>]>

>>> Question.objects.filter(id=1)

<QuerySet [<Question: what is up?>]>

>>> Question.objects.filter(question_text__startswith='what')

<QuerySet [<Question: what is up?>]>

>>> from django.utils import timezone

>>> current_year=timezone.now().year

>>> Question.objects.get(pub_date__year=current_year)

<Question: What is your name?>

>>> Question.objects.get(id=2)

Traceback (most recent call last):

File "<console>", line 1, in <module>

File "D:\Python36\lib\site-packages\django\db\models\manager.py", line 85, in manager_method

return getattr(self.get_queryset(), name)(*args, **kwargs)

File "D:\Python36\lib\site-packages\django\db\models\query.py", line 385, in get

self.model._meta.object_name

polls.models.DoesNotExist: Question matching query does not exist.

>>> q.choice_set.all()#查询关系集合

<QuerySet []>

#创建三个choice对象

>>> q.choice_set.create(choice_text='Not much',votes=0)

<Choice: Not much>

>>> q.choice_set.create(choice_text='The sky',votes=0)

<Choice: The sky>

>>> q.choice_set.create(choice_text='Just hacking again',votes=0)

<Choice: Just hacking again>

>>> q.choice_set.all()#查询choice列表

<QuerySet [<Choice: Not much>, <Choice: The sky>, <Choice: Just hacking again>]>

转载于:https://www.cnblogs.com/retacn-yue/p/6194187.html

Django1.10文档学习笔记二相关推荐

  1. 【ember zigbee】序章:协议栈相关文档学习笔记

    原文地址:https://blog.csdn.net/tainjau/article/details/90648114 文章目录 写在前面 一.材料出处 二.文档解析 2.1.EZSP Protoco ...

  2. Vue3 文档学习笔记

    vue3学习笔记 setup() 生命周期的与vue2的不同点在:beforeCreated.created都在setup()里进行默认调用,其他的都要写在setup()里面,算做compositio ...

  3. python定义函数的组成部分有_Python文档学习笔记(4)--定义函数

    定义函数 关键字 def 引入函数的定义.其后必须跟有函数名和以括号标明的形式参数列表.组成函数体的语句从下一行开始,且必须缩进. 执行 一个函数会引入一个用于函数的局部变量的新符号表. 因此,在函数 ...

  4. IAM 策略文档学习笔记

    策略文档 IAM 许可策略 附加到确定角色可执行哪些任务的角色.将许可限定为仅角色需要进行的操作,以及仅为进行这些操作角色需要的资源.您可以使用 AWS 管理的或客户创建的 IAM 许可策略 操作:您 ...

  5. w3schools文档学习笔记 - XML

    http://www.w3school.com.cn/xml/xml_syntax.asp 在 XML 中,省略关闭标签是非法的.所有元素都必须有关闭标签 声明不属于XML本身的组成部分.它不是 XM ...

  6. Unity Shader unity文档学习笔记(十一):战争迷雾核心算法

    核心算法 非常简单 主要就是把一个点的世界坐标转换到贴图的UV坐标 给整个场景一个大的plane 加上写的shader 摄像机位置调成plane的正上方 Shader "Unlit/FogR ...

  7. Unity Shader unity文档学习笔记(十七):径向模糊 实现类似冲锋时的速度感

    实现思路:离中心点越远的像素 模糊效果越明显 UV偏移的量越大 shader // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'Uni ...

  8. “全能”选手—Django 1.10文档中文版Part1

    欢迎大家访问我的个人网站<刘江的博客和教程>:www.liujiangblog.com ### 主要分享Python 及Django教程以及相关的博客 本文是博主翻译的Django1.10 ...

  9. MATLAB学习笔记——二维和三维绘图

    MATLAB学习笔记--二维和三维绘图 近期练习matlab的二维和三维绘图,整理一下,以防忘记. 文章目录 MATLAB学习笔记--二维和三维绘图 一.二维绘图 1.plot命令 2.fplot 命 ...

最新文章

  1. ORACLE 数据字典
  2. SOJ 8064 Whack the Groundhog
  3. gin获取post参数
  4. CSS权威指南(第三版)
  5. java 将依赖打包进lib_maven把依赖包拷贝到lib下
  6. qt样式表中背景图片的使用
  7. ThinkPHP6项目基操(18.实战部分 表单令牌Token 防CSRF)
  8. 出身寒门的程序员,如何改变命运?
  9. TortoiseGit使用技巧
  10. Air与java通信
  11. android init重启service(进程)
  12. csp 201512-4 送货(hierholzer算法的递归和堆栈实现)
  13. 沙盘模拟软件_三连冠!我校学子连续三年蝉联全国大学生沙盘模拟经营大赛福建省决赛一等奖...
  14. python入门视频教程
  15. Reflex WMS入门系列三十七:三种不同风格的RF界面
  16. PHP折算,PHP实现货币换算的方法
  17. 盘点那些被AI换脸、一键“脱”衣所滥用的AI模型
  18. play框架使用起来(16)
  19. 怎么python画好几朵玫瑰花_使用Python画玫瑰花
  20. kubernetes 入门实践

热门文章

  1. poj1192 最优连通子集(树形dp)
  2. C#异步编程的实现方式(4)——Task任务
  3. angular父组件通过@ViewChild 主动获取子组 件的数据和方法
  4. 文件流下载到本地 - 待完成
  5. 深入浅出 SpringMVC - 2 提升篇
  6. (树)判断二叉树是否为BST
  7. 实验仪器参数关系表达与传递
  8. 有用的Python资料
  9. jquery 表格(鼠标悬停改变改变行背景+隔行换色)
  10. JBoss下布署Spring2.5和Struts2系统