Django回忆录
Django使用回忆:
1、安装django:
pip install django==1.9
2、创建项目及应用:
django-admin startproject web django-admin startap blog
3、配置数据库、二级url:
web/setting.py: INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
] ... DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.mysql',
'NAME':'test_blog',
'USER':'ahaii',
'PASSWORD':'',
'HOST':'',
'PORT':'',
}
}
web/urls.py:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/', include('blog.urls')),
]
blog/urls.py: from blog import views urlpatterns = [
url(r'^$', views.index),
]
blog/views.py: from django.shortcuts import render,HttpResponse # Create your views here. def index(request):
return HttpResponse('Hello Django')
4、创建数据库模型:
blog/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) def __unicode__(self):
return self.title class Meta:
ordering = ['-date_time']
5、同步数据库:
python manage.py makemigrations
python manage.py migrate
其中,makemigrations是扫描变动后在本地的app目录下的migrations包里生成迁移用的代码,但是并不会执行。migrate则是根据migrations包下的代码操作数据库,但并不检查models的修改变动。所以更改models后应先makemigrations然后migrate。
6、创建超级用户:
python manage.py createsuperuser
7、利用python shell交互模式操作数据库:
python manage.py shell >>>from blog.models import Article
>>>Article.objects.create(title='...',category='...',content='...')//插入数据
>>>Article.objects.all()//查询所有记录,返回列表
>>>Article.objects.get(id=1)//查询第一条
>>>a=Article.objects.get(title='Car')
>>>a.content='The traffice is so busy!'//修改内容
>>>>a.save()//写入数据库
8、动态url:(获取url中的参数)
blog/views.py:
def detail(request,args):
post = Article.objects.all()[int(args)] //默认输入为字符串,转换为整型,列表索引
str = ('title=%s,category=%s,content=%s') %(post.title,post.category,post.content)
return HttpResponse(str)
blog/urls.py: urlpatterns = [
url(r'^$', views.index),
url(r'(?P<args>\d+)/$',views.detail)// \w+可匹配数字和字母
]
9、使用模版:
web项目下创建templates/test.html,设置模版路径:
web/setting: TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR,'templates')
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
templates/test.html: <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Just for test template</title>
<style>
body{
background-color: red;
}
strong{
color:lightseagreen;
}
</style>
</head>
<body>
<h1>Hello Django</h1>
<strong>{{ time }}</strong>
</body>
</html>
blog/views:
from datetime import datetime def template(request):
return render(request,'test.html',{'time':datetime.now()})
blog/urls: urlpatterns = [
url(r'template/$',views.template)
]
以上目录结构:
web-|
|-blog
|-manage.py
|-templates
|-web
话说Django数据库操作中get和filter的区别:
1、get:从数据库中找到匹配的一条,返回一个满足查询条件的对象。若没有查到符合条件的数据,会发生错误。
2、filter:从数据库中找到匹配的一条,返回一个满足查询条件的列表。若没有查到符合条件的数据,会返回一个口列表[]。
Django回忆录的更多相关文章
- docker配置mysql主从与django实现读写分离
一.搭建主从mysql环境 1 下载mysql镜像 docker pull mysql:5.7 2 运行刚下载的mysql镜像文件 # 运行该命令之前可以使用`docker images`是否下载成功 ...
- 双非硕士的辛酸求职回忆录:第 2 篇 谈谈我是如何同时找到Java、Python、Go等开发岗和国企银行的科技岗位Offer(上篇)
1. 双非硕士的辛酸求职之旅--谈谈我是如何同时找到Java.Python.Go等开发岗和国企银行的offer 1.1. 秋招最终情况 本人情况:双非硕,意向工作城市广深,Java和Python技术栈 ...
- 异步任务队列Celery在Django中的使用
前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- django server之间通过remote user 相互调用
首先,场景是这样的:存在两个django web应用,并且两个应用存在一定的联系.某些情况下彼此需要获取对方的数据. 但是我们的应用肯经都会有对应的鉴权机制.不会让人家随随便便就访问的对吧.好比上车要 ...
- Mysql事务探索及其在Django中的实践(二)
继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...
- Mysql事务探索及其在Django中的实践(一)
前言 很早就有想开始写博客的想法,一方面是对自己近期所学知识的一些总结.沉淀,方便以后对过去的知识进行梳理.追溯,一方面也希望能通过博客来认识更多相同技术圈的朋友.所幸近期通过了博客园的申请,那么今天 ...
- 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...
- 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...
随机推荐
- wcf实例模型(随记)
-----------------------------------------实例模型: 1.InstanceContentextMode: -------PerCall(单调):无状态,每次调用 ...
- 仿javascript中confirm()方法的小插件
10天没有写博客了,不知道为什么,心里感觉挺不舒服的,可能这是自己给自己规定要去完成的事情,没有按照计划执行,总会心里不怎么舒服.最近事情挺多的,终于今天抽空来更新一下博客了. 今天写的是一个小插件. ...
- 用C++进行简单的文件I/O操作-转自VC知识库
原文请见 http://www.vckbase.com/index.php/wv/1158 序论 我曾发表过文件输入输出的文章,现在觉得有必要再写一点.文件 I/O 在C++中比烤蛋糕简单多了. 在这 ...
- C#函数式程序设计之函数、委托和Lambda表达式
C#函数式程序设计之函数.委托和Lambda表达式 C#函数式程序设计之函数.委托和Lambda表达式 相信很多人都听说过函数式编程,提到函数式程序设计,脑海里涌现出来更多的是Lisp.Haske ...
- IOS UI 第八篇:基本UI
实现图片的滚动,并且自动停止在每张图片上 - (void)viewDidLoad{ [super viewDidLoad]; UIScrollView *scrollView = [[U ...
- 实现 ready和bind事件
Jquery揭秘系列:实现 ready和bind事件 讲这一节之前,先回顾之前的一篇<小谈Jquery>里面的代码: (function (win) { var _$ = functi ...
- Spectral Clustering
谱聚类算法(Spectral Clustering)优化与扩展 谱聚类(Spectral Clustering, SC)在前面的博文中已经详述,是一种基于图论的聚类方法,简单形象且理论基础充分,在 ...
- Linux网络编程(二)
Linux网络编程(二) 使用多进程实现服务器并发访问. 采用多进程的方式实现服务器的并发访问的经典范例. 程序实现功能: 1.客户端从标准输入读入一行文字,发送到服务器. 2.服务器接收到客户端发来 ...
- Github官方app的账户身份验证的实现
作为github上被fork最多,被star最多的Android项目,实在是没有理由不让我去学习学习的.这篇文章是关于其账户身份验证模块的实现的.如果你对此有兴趣,请移步到我的blog,地址如下: 地 ...
- JS自动刷新页面一次
<script type="text/javascript"> //刷新页面 if(location.href.indexOf("refresh=1" ...