django学习1
参考资料: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, urlfrom django.contrib import adminurlpatterns = [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的更多相关文章
- 今天主要推荐一下django学习的网址!
前言:每个月忙碌的头20天后,在上班时间投入到django理论学习的过程中,花了差不多3天时间简单的研究了一下django,着实废了我不少脑细胞. 采用虫师前辈的一张图和话: 如果你把这过程梳理清晰了 ...
- Django 学习笔记之四 QuerySet常用方法
QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命 ...
- Django 学习笔记之三 数据库输入数据
假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...
- Django学习系列之Form基础
Django学习系列之Form基础 2015-05-15 07:14:57 标签:form django 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追 ...
- Django学习笔记(五)—— 表单
疯狂的暑假学习之 Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path ...
- Django学习笔记(三)—— 型号 model
疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...
- django学习之Model(二)
继续(一)的内容: 1-跨文件的Models 在文件头部import进来,然后用ForeignKey关联上: from django.db import models from geography.m ...
- Python框架之Django学习
当前标签: Django Python框架之Django学习笔记(十四) 尛鱼 2014-10-12 13:55 阅读:173 评论:0 Python框架之Django学习笔记(十三) 尛 ...
- Django 学习笔记(二)
Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...
- Django 学习笔记(五)模板标签
关于Django模板标签官方网址https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.IF标签 Hello World/vi ...
随机推荐
- CMD命令下访问Oracle数据库
1.非集群下 Windows环境下数据库 127.0.0.1 只是个IP代表 实际要输入你要访问的数据库服务器IP地址的 如果数据库服务器不在本机上,需要加上数据库服务器的地址:用户名/密码@IP地 ...
- 中秋节福利---HTML5-玉兔吃月饼游戏
中秋节快来了.送大家点福利: HTML5-玉兔吃月饼游戏 效果图: 代码下载:点击这里!!
- Unity编辑器下,界面替换NGUI字体以及字号
项目中有需要批量替换字体以及字号的需求,一般也就是多语言处理吧. 提供界面如下: 手机拍图,就这样凑合看吧.但是代码不打折. 紧急避让,我只提供修改UILabel以及UIPopupList 下的字体, ...
- 【C/C++】struct探索·extern "C"含义探索 ·C++与C的混合编程·C 语言高效编程的几招
本文为笔者阅读<嵌入式C精华>的摘录,推荐一下,不错的书 一.C/C++语言 struct深层探索 1.自然对界 struct是一种复合数据类型,其构成元素既可以是基本数据类型(如 int ...
- 【Bootloader】bootloader启动过程分析
Boot Loader启动过程分析 一. Boot Loader的概念和功能 1.嵌入式Linux软件结构与分布在一般情况下嵌入式Linux系统中的软件主要分为以下及部分: (1)引导加载程序: ...
- JMeter测试工具中的参数化使用[函数助手]
下面是我使用JMeter测试工具对某项目中的一个http接口进行测试时的配置参数,使用到了JMeter的随机函数: 在发送POST请求时,需要发送json格式的数据,其中使用到JMeter的" ...
- 10个非常炫酷的jQuery相册动画赏析
我们经常可以在网页上看到形式各异的jQuery相册插件,由于现在浏览器对HTML5和CSS3的兼容越来越好了,所以很多jQuery相册插件都运用了CSS3的相关特性,形成了许多炫酷的动画特效.本文收集 ...
- FIS-PLUS百度前端框架使用过程
1.如果后端开发语言是php,那么前端fis框架用FIS-PLUS,如果是java则用jello 2.FIS-PLUS使用步骤 1.安装nodejs 2.安装 fis npm install -g f ...
- 关于Python中深拷贝与浅拷贝的理解(一)---概念
import copy a = [1, 2, 3, 4, ['a', 'b']] #原始对象 b = a #赋值,传对象的引用 c = copy.copy(a) #对象拷贝,浅拷贝 d = copy. ...
- django源码解析之BigIntegerField (一)
要分析django的源码,来更深入的学习django,是一个不错的方法,可惜需要大量的时间. 所以,能分析多少就是多少吧. 本次源码分析以1.4.16为基础. 用sublime 打开下载的源码,使用 ...
