创建项目:django-admin startproject mysite

该命令将会创建一个名为mysite的项目。

mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py

 manage.py:一个实用的命令行,用来与你的项目进行交互。它是一个对django-admin.py工具的简单封装。你不需要编辑这个文件。

  • mysite/:你的项目目录,由以下的文件组成:
    • init.py:一个空文件用来告诉Python这个mysite目录是一个Python模块。
    • settings.py:你的项目的设置和配置。里面包含一些初始化的设置。
    • urls.py:你的URL模式存放的地方。这里定义的每一个URL都映射一个视图(view)。
    • wsgi.py:配置你的项目运行如同一个WSGI应用。

默认生成的settings.py文件包含一个使用一个SQLite数据库的基础配置以及一个Django应用列表,这些应用会默认添加到你的项目中。我们需要为这些初始应用在数据库中创建表。

运行开发服务器

python manage.py runserver

在浏览器中打开 http://127.0.0.1:8000/ ,你会看到一个告诉你项目成功运行的页面

你可以指定Django在定制的host和端口上运行开发服务,或者告诉它你想要运行你的项目通过读取一个不同的配置文件。例如:你可以运行以下 manage.py命令:

python manage.py runserver 127.0.0.1: \
--settings=mysite.settings

创建一个应用

python manage.py startapp blog

设计blog数据架构

我们将要开始为你的blog设计初始的数据模型(models)。一个模型(model)就是一个Python类,该类继承了django.db.models.model,在其中的每一个属性表示一个数据库字段。Django将会为models.py中的每一个定义的模型(model)创建一张表。当你创建好一个模型(model),Django会提供一个非常实用的API来方便的查询数据库。

激活你的应用

为了让Django能保持跟踪你的应用并且根据你的应用中的模型(models)来创建数据库表,我们必须激活你的应用。因此,编辑settings.py文件,在INSTALLED_APPS设置中添加blog

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
)

创建和进行数据库迁移

python manage.py makemigrations blog
python manage.py migrate

为模型(models)创建一个管理站点

python manage.py createsuperuser
Username (leave blank to use 'admin'): admin
Email address: admin@admin.com
Password: ********
Password (again): ********
Superuser created successfully.

Django管理站点

通过python manage.py runserver命令来启动开发服务器,之后在浏览器中打开 http://127.0.0.1:8000/admin/ 。你会看到管理站点的登录页面.

在管理站点中添加你的模型(models)

让我们在管理站点中添加你的blog模型(models)。编辑blog应用下的admin.py文件,

from django.contrib import admin
from .models import Post admin.site.register(Post)

定制models的展示形式

使用查询集(QuerySet)和管理器(managers)

创建对象

更新对象

取回对象

使用filter()方法

使用exclude()

使用order_by()

删除对象

创建model manager(定制版)

构建列和详情视图(views)

首先我们会创建我们的应用视图(views),然后我们将会为每个视图(view)定义一个URL模式,我们将会创建HTML模板(templates)来渲染这些视图(views)生成的数据。每一个视图(view)都会渲染模板(template)传递变量给它然后会返回一个经过渲染输出的HTTP响应。

为你的视图(views)添加URL模式

为你的视图(views)创建模板(templates)

添加页码

当你开始给你的blog添加内容,你很快会意识到你需要将帖子分页显示。Django有一个内置的Paginator类允许你方便的管理分页。

使用基于类的视图(views)



 

django学习过程中知识点小结的更多相关文章

  1. 谨以此篇献给DJANGO学习过程中遇到的问题

    谨以此篇献给DJANGO学习过程中遇到的问题 一.Django数据同步过程中遇到的问题: 1.raise ImproperlyConfigured('mysqlclient 1.3.13 or new ...

  2. Django学习过程中的排错总结

    报错一:RuntimeError: You called this URL via POST, but the URL doesn't end in a slash and you have APPE ...

  3. Django学习过程中遇到的问题

    一.Django数据同步过程中遇到的问题: 1.raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you hav ...

  4. Java学习过程中的总结的小知识点(长期更新)

    Java学习过程中的总结的小知识点 (主要是自己不会的知识和容易搞错的东西) 计算某个程序运行的时间 long stime=System.currentTimeMillis(); copy3(file ...

  5. C++重要知识点小结---3

    C++重要知识点小结---1:http://www.cnblogs.com/heyonggang/p/3246631.html C++重要知识点小结---2:http://www.cnblogs.co ...

  6. C++重要知识点小结---2

    C++重要知识点小结--1 :http://www.cnblogs.com/heyonggang/p/3246631.html 1.C++允许程序员声明一个不能有实例对象的类,这样的类惟一的用途是被继 ...

  7. React及Nextjs相关知识点小结

    React及Nextjs知识点小结 函数式组件和类组件区别是什么 1.函数式组件是用于创建无状态的组件,组件不会被实例化,无法访问this中的对象,无法访问生命周期方法,是无副作用的,相比于类组件函数 ...

  8. Python中的Django框架中prefetch_related()函数对数据库查询的优化

    实例的背景说明 假定一个个人信息系统,需要记录系统中各个人的故乡.居住地.以及到过的城市.数据库设计如下: Models.py 内容如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  9. 【SpringBoot MQ 系列】RabbitMq 核心知识点小结

    [MQ 系列]RabbitMq 核心知识点小结 以下内容,部分取材于官方教程,部分来源网络博主的分享,如有兴趣了解更多详细的知识点,可以在本文最后的文章列表中获取原地址 RabbitMQ 是一个基于 ...

随机推荐

  1. event对应的各种坐标

    IE8不支持的PageXY   相对于整个页面鼠标的位置 包括溢出的部分 event.pageX; event.pageY; 所有浏览器支持的: 相对于当前浏览器窗口可视区域的坐标event.clie ...

  2. 项目Contact开发中遇到的,引以为戒

    程序进去就闪退 其中指示错误的地方,函数内容如下: public void loadButtomMenu() { gv_buttom_menu = (GridView) this.findViewBy ...

  3. mysql5.6 rpm安装配置

    检查MySQL及相关RPM包,是否安装,如果有安装,则移除(rpm –e 名称)   [root@localhost share]# rpm -qa | grep -i mysql MySQL-cli ...

  4. iOS 手势

    一.看这里 二.抽象类  UIGestureRecognizer 继承于该类的有7类:轻点,捏合,拖拽,滑动,长按,旋转,边缘滑动; 一个手势可以绑定多个事件  - (void)addTarget:( ...

  5. A comparison of local caches (1) 【本地缓存之比较 (1)】

    1. Spring local cache   [Spring 本地缓存] Spring provided cacheable annotation since 3.1. It's very supe ...

  6. c++ thread

    Either pthread_join(3) or pthread_detach() should be called for each thread,that an application crea ...

  7. 扔掉log4j、log4j2,自己动手实现一个多功能日志记录框架,包含文件,数据库日志写入,实测5W+/秒日志文件写入,2W+/秒数据库日志写入,虽然它现在还没有logback那么强大

    讲到log4j,现在国外基本是没有开发者用这个框架了,原因大致有几点,1.功能太少:2.效率低下:3.线程锁bug等等等各种莫名其妙的bug一直都没解决. 其实最重要的是log4j的作者自己也放弃了l ...

  8. PHP的SQL注入技术实现以及预防措施

    SQL 攻击(SQL injection,台湾称作SQL资料隐码攻击),简称注入攻击,是发生于应用程序之数据库层的安全漏洞.简而言之,是在输入的字符串之中注入SQL指 令,在设计不良的程序当中忽略了检 ...

  9. A comparison of local caches (2) 【本地缓存之比较 (2)】

    接上一篇: A comparison of local caches (1) [本地缓存之比较 (1)] This article will compare the asynchronous loca ...

  10. Visual studio常用的code snippets

    作为全球第一的IDE,VS用起来自然相当的爽,当你在visual studio里敲出几个字母,能帮你生成一大段代码,省时省力又能装逼. 比如,你打一个 prop,然后按tab键,就能生成一个带get/ ...