参考资料:http://www.cnblogs.com/feixuelove1009/p/5910384.html#top

本学习只在记录过程,需要更全面的资料,可直接上参考资料细看。

django版本为1.10.8

python版本为3.5.3

1、安装django

1)先清理老版本

如果之前安装过django版本,为了简单起见,直接删除先

我之前安装的目录在:C:\Program Files\Anaconda3\envs\python3.5.3\Lib\site-packages

全删了

然后在命令行中输入命令:python -m django --version

2)安装新版本

命令行中输入:pip install django==1.10.i8

安装完成后,输入命令确认版本:python -m django –version

2、生成简单的工程:

进入你指定的某个目录,运行下面的命令:django-admin startproject mysite

进入mysite目录,输入下面的命令:python manage.py runserver

至此,一个简单的web服务器就写好了,打开浏览器,输入localhost:8000

3、创建简单的投票程序

1)创建app

在命令行中输入命令:python manage.py startapp polls

运行完成后看到mysite目录下已经生成了polls目录和相应文件:

2) 编写视图

在polls/views.py文件中,输入下列代码:

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

为了调用该视图,我们还需要编写urlconf。现在,在polls目录中新建一个文件,名字为urls.py,在其中输入代码如下:

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

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

下一步是让项目的主urls文件指向我们建立的polls这个app独有的urls文件,你需要先导入include模块,打开mysite/urls.py文件,代码如下:

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls),
]
然后输入命令,python manage.py runserver
打开浏览器,输入:http://localhost:8000/polls/
运于结果如下:
 

4、数据库安装

1)创建模型

polls/models.py

from django.db import models

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)

2) 激活模型

mysite/settings.py中

INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

命令行中运行命令:python manage.py makemigrations polls

再运行命令:python manage.py sqlmigrate polls 0001

在运行最后的命令前:python manage.py migrate,我们稍微停留一下,考虑是接到哪一个数据库上。

当前接入的数据库为mysql,因此需要提前做一些准备。

在本地创建一个mysite数据库:(假译用户名:root,密码:root)

mysql -uroot -proot

create database test2 charset=utf8;

然后修改mysite/settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mysite', #数据库名字,
        'USER': 'root', #数据库登录用户名
        'PASSWORD': 'root', #数据库登录密码,我自己修改了
        'HOST': 'localhost', #数据库所在主机(公司中写真实主机地址)
        'PORT': '3306', #数据库端口
    }
}

需要说明的是,需要先安装mysql相应的库:

pip install mysqlclient

pip install pymysql

这样可确保无错误

执行:python manage.py migrate

数据库的通道打通:

5、使用API

在当前目录下使用命令:python manage.py shell

然后可以用以下命令尝试:

>>> import django 

>>> django.setup()

>>> from polls.models import Question, Choice # 导入我们写的模型类
    # 现在系统内还没有questions
    >>> Question.objects.all()
    <QuerySet []>
    
    # 创建一个新的question
    # Django推荐使用timezone.now()代替python内置的datetime.datetime.now()
    from django.utils import timezone
    >>> q = Question(question_text="What's new?", pub_date=timezone.now())
    
    # 你必须显式的调用save()方法,才能将对象保存到数据库内
    >>> q.save()
    
    # 默认情况,你会自动获得一个自增的名为id的主键
    >>> q.id
    1
    
    # 通过python的属性调用方式,访问模型字段的值
    >>> q.question_text
    "What's new?"
    >>> q.pub_date
    datetime.datetime(2012, 2, 26, 13, 0, 0, 775217, tzinfo=<UTC>)
    
    # 通过修改属性来修改字段的值,然后显式的调用save方法进行保存。
    >>> q.question_text = "What's up?"
    >>> q.save()
    
    # objects.all() 用于查询数据库内的所有questions
    >>> Question.objects.all()
    <QuerySet [<Question: Question object>]>

前面显示的有不可读的内容,加__str__函数

polls/models.py

from django.db import models
from django.utils.encoding import python_2_unicode_compatible

@python_2_unicode_compatible # 当你想支持python2版本的时候才需要这个装饰器
class Question(models.Model):
    # ...
    def __str__(self):   # 在python2版本中使用的是__unique__
        return self.question_text
        
@python_2_unicode_compatible 
class Choice(models.Model):
    # ...
    def __str__(self):
        return self.choice_text

6、创建管理员

需要创建的密码具有一定复杂性,否则会要求重新输入

启动开发服务器,在浏览器访问http://127.0.0.1:8000/admin/

点击进去是系统自带的界面:

注册投票应用:

打开polls/admin.py文件,加入下面的内容:

from django.contrib import admin
from .models import Question

admin.site.register(Question)

再次启动开发服务器,然后访问浏览器:http://127.0.0.1:8000/admin/

django学习1的更多相关文章

  1. 今天主要推荐一下django学习的网址!

    前言:每个月忙碌的头20天后,在上班时间投入到django理论学习的过程中,花了差不多3天时间简单的研究了一下django,着实废了我不少脑细胞. 采用虫师前辈的一张图和话: 如果你把这过程梳理清晰了 ...

  2. Django 学习笔记之四 QuerySet常用方法

    QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命 ...

  3. Django 学习笔记之三 数据库输入数据

    假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...

  4. Django学习系列之Form基础

     Django学习系列之Form基础 2015-05-15 07:14:57 标签:form django 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追 ...

  5. Django学习笔记(五)—— 表单

    疯狂的暑假学习之  Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path         ...

  6. Django学习笔记(三)—— 型号 model

    疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...

  7. django学习之Model(二)

    继续(一)的内容: 1-跨文件的Models 在文件头部import进来,然后用ForeignKey关联上: from django.db import models from geography.m ...

  8. Python框架之Django学习

    当前标签: Django   Python框架之Django学习笔记(十四) 尛鱼 2014-10-12 13:55 阅读:173 评论:0     Python框架之Django学习笔记(十三) 尛 ...

  9. Django 学习笔记(二)

    Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...

  10. Django 学习笔记(五)模板标签

    关于Django模板标签官方网址https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.IF标签 Hello World/vi ...

随机推荐

  1. Android 视觉规范

    各种分辨率下图片尺寸 工程师通常开发三套UI布局文件,所以设计师通常也要不同的需求处理2-3套切图. con Type Standard Asset Sizes (in Pixels), for Ge ...

  2. 阿里druid连接池监控配置

    首先在web.xml中添加如下配置: <filter> <filter-name>DruidWebStatFilter</filter-name> <filt ...

  3. Android下基于SDL的位图渲染(二)理论篇

    理论篇 上一篇中介绍了如何将SDL2源码应用到Android渲染中,实际上SDL本身提供的android-project实现了基于android的c运行时环境,通过上面实践篇的介绍,就是完成这个环境搭 ...

  4. visual studio 2005提示脚本错误 /VC/VCWizards/2052/Common.js

    今天在做OCX添加接口的时候,莫名其妙的遇到visual studio 2005提示脚本错误,/VC/VCWizards/2052/Common.js. 网上找了很多资料,多数介绍修改注册表“vs20 ...

  5. Ubuntu设置静态连接连不上网

    今天新建了一个Ubuntu虚拟机,一切都好了之后,设置了静态ip,但是上不了网,但是使用dhcp可以上网. 搞了几个小时也没有搞定,记录一下这些信息

  6. muduo源码分析:组成结构

    muduo整体由许多类组成: 这些类之间有一些依赖关系,如下:

  7. PowerDesigner小技巧

    1. 附加:工具栏不见了 调色板(Palette)快捷工具栏不见了PowerDesigner 快捷工具栏 palette 不见了,怎么重新打开,找回来呢 上网搜索了一下”powerdesigner 图 ...

  8. 【机器学习】粗糙集(Rough Set Approach)

    粗糙集理论是一种研究不精确,不确定性知识的数学工具. 粗糙集理论的知识表达方式一般采用信息表或称为信息系统的形式,它可以表现为四元有序组K=(U,A,V,P).其中U为对象的全体,即论域:A是属性全体 ...

  9. jetty 代码启动

    jetty代码启动 jetty 版本为:jetty-distribution-8.1.16.v20140903 public class ServerStart extends Server { @T ...

  10. linux下Anaconda安装使用Tensorflow

    # linux下Anaconda安装使用Tensorflow ### 环境------------------------------ Ubuntu 18.04 ### 环境准备----------- ...