基于django快速开发一个网站(一)

*  创建虚拟环境、基于虚拟环境创建django==2.0.0和图片加载库和mysql数据库驱动

1. 创建目录并创建虚拟环境

╰$ mkdir Cornucopiavirtualenv
╰$ cd Cornucopiavirtualenv
╰$ virtualenv env1

2. 进入bin目录,并激活虚拟环境

╰$ cd bin
╰$ source activate

3. 进入环境、创建django和Pillow、PyMySQL

╰$ pip install django==2.0.
╰$ pip install pillow
╰$ pip install pymysql
或者也可以
╰$ pip install pymysql pillow django==2.0.

4. 创建Cornucopia的项目并设置book模块,并设置中文和中国上海的时区

╰$ django-admin startproject Cornucopia
╰$ python3 manage.py startapp book

4-1. 设置中文和中国上海的时区(在settings.py中修改)

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

5. 创建model模型数据

class User(models.Model):
nickname = models.CharField(max_length=50, blank=True)
email = models.EmailField('email address', blank=True, unique=True) def __str__(self):
return self.nickname class Category(models.Model):
name = models.CharField('分类名称', max_length=128) def __str__(self):
return self.name class Meta:
verbose_name = '书籍分类'
verbose_name_plural = verbose_name class Tag(models.Model):
name = models.CharField('标签', max_length=128) def __str__(self):
return self.name class Meta:
verbose_name = '书籍标签'
verbose_name_plural = verbose_name class Entry(models.Model):
title = models.CharField('文章标题', max_length=128)
author = models.ForeignKey(User, verbose_name='作者', on_delete=models.CASCADE)
book_imge = models.ImageField(upload_to='blog_img', null=True, blank=True, verbose_name='书籍配图')
# body = models.TextField('正文', )
body = MDTextField()
# abstract = models.TextField('摘要', max_length=256, null=True, blank=True)
abstract = MDTextField()
visiting = models.PositiveIntegerField('访问量', default=0)
category = models.ManyToManyField('Category', verbose_name='博客分类')
tags = models.ManyToManyField('Tag', verbose_name='标签')
created_time = models.DateTimeField('创建时间', auto_now_add=True)
modifyed_time = models.DateTimeField('修改时间', auto_now=True) def __str__(self):
return self.title class Meta:
ordering = ['-created_time']
verbose_name = ' 书籍正文'
verbose_name_plural = verbose_name

6.  设置数据库链接方式在settings.py中修改

import pymysql

pymysql.install_as_MySQLdb()

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'books', # 数据库名字
'USER': 'root', # 账号
'PASSWORD': '', # 密码
'HOST': 'localhost', # IP
'PORT': '', # 端口
}
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
}

7. 将新的模块book加入系统中

# Application definition

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'book',
]

8.  迁移数据、到数据库

╰$ python3 manage.py makemigrations
╰$ python3 manage.py migrate

9. 创建超级管理员,根据提示一步一步来

╰$ python3 manage.py createsuperuser

10. 在urls.py中进行路由配置

from django.conf.urls import url, include
from django.contrib import admin urlpatterns = [
url(r'admin/', admin.site.urls),
url(r'^', include('book.urls')),
]

11. 在book模块中,创建urls.py配置路由

from django.conf.urls import url
from . import views app_name = 'book'
urlpatterns = [
url(r'^$', views.index, name='book_index'),
url(r'^(?P<blog_id>[0-9]+)', views.detail, name='book_detail'),
]

12. 配置前端页面在Cornucopia/book下创建templates/book,两个目录,在settings.py配置templates路径

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',
],
},
},
]

13. 创建index.html和detail.html

14.配置静态文件目录在Cornucopia/book下创建static/css,两个目录,在settings.py配置templates路径

STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static').replace('\\', '/'),
]

15.admin.py配置后台现在内容

from django.contrib import admin
from . import models class EntryAdmin(admin.ModelAdmin):
list_display = ['title','author','visiting','created_time','modifyed_time'] admin.site.register(models.Category)
admin.site.register(models.Tag)
admin.site.register(models.Entry,EntryAdmin)

16.启动程序、登入后台

╰$ python3 manage.py runserver 127.0.0.1:8001

基于django快速开发一个网站(一)的更多相关文章

  1. 如何基于 PHP-X 快速开发一个 PHP 扩展

    0x01 起步 PHP-X本身基于C++11开发,使用cmake进行编译配置.首先,你需要确定所有依赖项已安装好.包括: gcc-4.8 或更高版本 PHP7.0 或更高版本,需要php7-dev 开 ...

  2. OrChard快速开发一个网站,个人网站

    Orchard中文 登录 主页 文档 下载 博客文章 论坛 联系我们 Orchard是一个以微软为主导的开源CMS项目,它允许使用者在Asp.Net平台上快速建立网站,并且提供扩展框架能够允许定制人员 ...

  3. web 框架的本质及自定义web框架 模板渲染jinja2 mvc 和 mtv框架 Django框架的下载安装 基于Django实现的一个简单示例

    Django基础一之web框架的本质 本节目录 一 web框架的本质及自定义web框架 二 模板渲染JinJa2 三 MVC和MTV框架 四 Django的下载安装 五 基于Django实现的一个简单 ...

  4. django局域网建一个网站

    之前总是运行的python manage.py runserver,用默认的在本机访问的127.0.0.1:8000,如果跟几个同学一起去开发一个网站来玩玩的话,可以这样: python manage ...

  5. 用 Go 快速开发一个 RESTful API 服务

    何时使用单体 RESTful 服务 对于很多初创公司来说,业务的早期我们更应该关注于业务价值的交付,而单体服务具有架构简单,部署简单,开发成本低等优点,可以帮助我们快速实现产品需求.我们在使用单体服务 ...

  6. 与众不同 windows phone (31) - Communication(通信)之基于 Socket UDP 开发一个多人聊天室

    原文:与众不同 windows phone (31) - Communication(通信)之基于 Socket UDP 开发一个多人聊天室 [索引页][源码下载] 与众不同 windows phon ...

  7. 与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室

    原文:与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室 [索引页][源码下载] 与众不同 windows phon ...

  8. 使用.NET Core快速开发一个较正规的命令行应用程序

    程序员的世界,命令行工具一直是"体验非常友好"的工具,也能自动化完成很多事情,同时还能结合shell来进行某项任务的批处理(脚本).在.NET Core中,命令行应用程序是基础,但 ...

  9. 如何快速开发一个支持高效、高并发的分布式ID生成器

    ID生成器是指能产生不重复ID服务的程序,在后台开发过程中,尤其是分布式服务.微服务程序开发过程中,经常会用到,例如,为用户的每个请求产生一个唯一ID.为每个消息产生一个ID等等,ID生成器也是进行无 ...

随机推荐

  1. 永久修改Ubuntu的主机名称

    Ubuntu主机名称查看方法,使用hostname命令: [ubuntu@ubuntu ~]$hostname ubuntu 永久修改方法: 修改配置文件: sudo vi /etc/hostname ...

  2. 有用的20个Python代码段

    Python是一种非BS编程语言.设计简单和易读性是它广受欢迎的两大原因.正如Python的宗旨:美丽胜于丑陋,显式胜于隐式. 记住一些帮助提高编码设计的常用小诀窍是有用的.在必要时刻,这些小诀窍能够 ...

  3. JS DOM笔记

    js的组成     ECMAScript:JS的语法     DOM:页面文档对象模型     BOM:浏览器对象模型     web APIs     是浏览器提供的一套操作浏览器功能和页面元素的A ...

  4. react 样式冲突解决方案 styled-components

    前置 在 react 中解决组件样式冲突的方案中,如果您喜欢将 css 与 js 分离,可能更习惯于 CSS-Modules:如果习惯了 Vue.js 那样的单文件组件,可能习惯于使用 styled- ...

  5. 2020-06-13:Redis底层数据结构?

    福哥答案2020-06-13: 福哥口诀法:简链字跳整 压快压 SDS simple synamic string:简单动态字符串.支持自动动态扩容的字节数组 .list :链表 .双端链表.dict ...

  6. C#LeetCode刷题之#217-存在重复元素(Contains Duplicate)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3772 访问. 给定一个整数数组,判断是否存在重复元素. 如果任何 ...

  7. Android SharedPreferences存储详解

    什么是SharedPreferences存储 一种轻量级的数据保存方式 类似于我们常用的ini文件,用来保存应用程序的一些属性设置.较简单的参数设置. 保存现场:保存用户所作的修改或者自定义参数设定, ...

  8. 小程序的优化代码的分析Promise方法

    代码优化,这里通过了wx.request请求轮播图的API,通过result结果里面的data数据我们可以看到massage里面装着我们的数据 通过图片可以用看到swiperList返回的三个元素的数 ...

  9. 第一次使用Git Bash Here 将本地代码上传到码云

    当我们安装成功git工具时候,初次使用Git时,需要Git进行配置. 1.点击桌面上的这个图标,打开Git Bash:如图所示 2.配置自己的用户名和邮箱 git config --global us ...

  10. HotSpot的执行引擎-CallStub栈帧

    之前多次提到接触到调用JavaCalls::call()方法来执行Java方法,如: (1)Java主类装载时,调用JavaCalls::call()方法执行的Java方法checkAndLoadMa ...