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‘:‘123456‘,
        ‘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 migrate

python manage.py makemigrations

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)
]
时间: 2024-08-26 01:49:54

Django回忆录的相关文章

八、Django的orm之多表操作(二)

一.查询(重点) 基于对象的跨表查询 -- 类似于子查询 正向查询和反向查询 关系属性(字段)写在哪个表里面,从当前类(表)的数据去查询它关联类(表)的数据叫做正向查询,反之叫做反向查询 一对一查询 正向查询 # 1.查询jiege的地址 author_obj = models.Author.objects.get(name='jiege') print(author_obj.authorDetail.addr) # 或者用filter这种查,但是要加.first()变成models对象,否则报

Django url 标签和reverse()函数的使用(转)

原文:http://www.yihaomen.com/article/python/355.htm 使用url标签和reverse()函数,可以避免在模板和view中对url进行硬编码,这样即使url改变了,对模板和view也没有影响 起初用django 开发应用的时候,完全是在urls.py 中硬编码配置地址,在views.py中HttpResponseRedirect()也是硬编码转向地址,当然在template 中也是一样了,这样带来一个问题,如果在urls.py 中修改了某个页面的地址,

利用 Django REST framework 编写 RESTful API

利用 Django REST framework 编写 RESTful API Updateat 2015/12/3: 增加 filter 最近在玩 Django,不得不说 rest_framework 真乃一大神器,可以轻易的甚至自动化的搞定很多事情,比如: 自动生成符合 RESTful 规范的 API 支持 OPTION.HEAD.POST.GET.PATCH.PUT.DELETE 根据 Content-Type 来动态的返回数据类型(如 text.json) 生成 browserable

Django(三) ORM 数据库操作

比较有用 转自 http://blog.csdn.net/fgf00/article/details/53678205 一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 2.创建数据库 表结构 二.Django ORM基本增删改查 1.表数据增删改查 2.表结构修改 三.Django ORM 字段类型 1.字段类型介绍 2.字段参数介绍 3.Django ORM 外键操作 一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 ORM:关系对象映射.定义一个类自动生成数

linux中部署django项目

通过Nginx部署Django(基于ubuntu) Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.nginx把所有静态请求自己来处理(这是NGINX的强项).然后,NGINX将所有非静态请求通过uwsgi传递给Django,由Django来进行处理,从而完成一次WEB请求. 可见,uwsgi的作用就类似一个桥接器.起到桥梁的作用. Linux的强项

【前端框架】Django补充

一.缓存 由于Django是动态网站,所以每次请求均会去取到数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单的解决方式就是使用缓存,缓存将某个views返回的值保存至内存或者memcache中,5分钟内再有人来访问时,则不再去执行view中的操作,而是直接从内存或者redis中把之前缓存的内容拿到,并返回. Django中提供了6中缓存方式: 开发调试 内存 文件 数据库 Memcache缓存(python-memcached模块) Memcache缓存(pylibmc模块) 1

Django之Form组件

Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建Form类 from django.forms import Form from django.forms import widgets from django.forms import fields class MyForm(Form): user = fields.CharField( widget=widgets.Tex

Django表单上传

任务描述:实现表单提交(上传文件) 1.项目目录: 2.源代码: regist.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>regist</title> </head> <body> <h3>regist</h3> <hr> <

Django之ModelForm组件

1.Django之ModelForm组件 ModelForm a. class Meta: model, # 对应Model的 fields=None, # 字段 exclude=None, # 排除字段 labels=None, # 提示信息 help_texts=None, # 帮助提示信息 widgets=None, # 自定义插件 error_messages=None, # 自定义错误信息(整体错误信息from django.core.exceptions import NON_FIE