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回忆录的更多相关文章

  1. docker配置mysql主从与django实现读写分离

    一.搭建主从mysql环境 1 下载mysql镜像 docker pull mysql:5.7 2 运行刚下载的mysql镜像文件 # 运行该命令之前可以使用`docker images`是否下载成功 ...

  2. 双非硕士的辛酸求职回忆录:第 2 篇 谈谈我是如何同时找到Java、Python、Go等开发岗和国企银行的科技岗位Offer(上篇)

    1. 双非硕士的辛酸求职之旅--谈谈我是如何同时找到Java.Python.Go等开发岗和国企银行的offer 1.1. 秋招最终情况 本人情况:双非硕,意向工作城市广深,Java和Python技术栈 ...

  3. 异步任务队列Celery在Django中的使用

    前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...

  4. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  5. django server之间通过remote user 相互调用

    首先,场景是这样的:存在两个django web应用,并且两个应用存在一定的联系.某些情况下彼此需要获取对方的数据. 但是我们的应用肯经都会有对应的鉴权机制.不会让人家随随便便就访问的对吧.好比上车要 ...

  6. Mysql事务探索及其在Django中的实践(二)

    继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...

  7. Mysql事务探索及其在Django中的实践(一)

    前言 很早就有想开始写博客的想法,一方面是对自己近期所学知识的一些总结.沉淀,方便以后对过去的知识进行梳理.追溯,一方面也希望能通过博客来认识更多相同技术圈的朋友.所幸近期通过了博客园的申请,那么今天 ...

  8. 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...

  9. 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...

随机推荐

  1. 使用fixed制作浮动广告(注意:解决闪屏问题,但适用于高版本浏览器,低版本的浏览器不适用)

    <script language="javascript" type="text/javascript"> //隐藏广告 function clos ...

  2. ModelBinder——ASP.NET MVC Model绑定的核心

    ModelBinder——ASP.NET MVC Model绑定的核心 Model的绑定体现在从当前请求提取相应的数据绑定到目标Action方法的参数.通过前面的介绍我们知道Action方法的参数通过 ...

  3. js 将long日期格式 转换为标准日期格式方法

    我们经常在操作的时候会发现从后台传递到view层的json中datetime类型变成了long型,当然你也可以从后台先转为string类型,但是如果是从和数据库对应的object中封装的话,就不能再去 ...

  4. sql之T-SQL

    sql之T-SQL   下面就T-SQL的几个方面来分别讲解一下. 1.变量 要动态的写sql语句,就不能没有变量. 声明变量并赋值: 1 declare @i as int;--定义一个 int 类 ...

  5. .NET4.5 Console.ReadKey()在多线程下的BUG

    .NET 4.5 在多线程的控制台里,Console.ReadKey()可能会造成线程死锁.看代码: static void Main(string[] args) { System.Timers.T ...

  6. C# 读取 vCard 格式

    办公室里有时忙起来,会频繁进入这样一个循环,想找某个人的电话-去找名片-找不到名片-去查看手机-手机按解锁开关-手机滑屏/指纹/密码/图形解锁-手机按通话按键-输入那个人姓名的部分-找到电话-输入到P ...

  7. XSD实例

    XSD实例 在前面的XSD笔记中,基本上是以数据类型为主线来写的,而在我的实际开发过程中,是先设计好了XML的结构(元素.属性),并写好了一份示例,然后再反过来写XSD文件(在工具生成的基础上修改), ...

  8. 使用brew安装软件

    使用brew安装软件 brew 又叫Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件, 只需要一个命令, 非常方便 brew类似ubuntu系统下的apt- ...

  9. T-SQL 临时表、表变量、UNION

    T-SQL 临时表.表变量.UNION 这次看一下临时表,表变量和Union命令方面是否可以被优化呢? 阅读导航 一.临时表和表变量 二.本次的另一个重头戏UNION 命令 一.临时表和表变量 很多数 ...

  10. The Event System

    The Event System 在Qt中,事件是继承了虚拟类QEvent的对象,它代表了程序所发生的事情或者程序需要知道的一个外部活动的结果.事件可以被任意 QObject子类的实例接收和处理,是与 ...