django是一款MVT的框架

一、基本过程

  1、创建项目:django-admin startproject 项目名称

  2、编写配置文件settings.py(数据库配置、时区、后台管理中英文等)

  3、创建应用:python manage.py startapp 应用名称

  4、编写模型类:models.py

  5、生成迁移文件: python manage.py makemigrations

  6、执行迁移生成数据表: python manage.py migrate

  7、后台管理:python manage.py createsuperuser

  8、向admin注册模型(admin.py):admin.site.register(模型类)

  9、自定义管理界面

  10、运行项目:python manage.py runserver 端口

二、实现

创建应用

python manage.py startapp booktest

urls.py是后天创建的

定义模型类

from django.db import models

# Create your models here.

class BookInfo(models.Model):
title = models.CharField(max_length=32)
time = models.DateTimeField() def get_title(self):
return self.title get_title.short_description = "书名" class HeroInfo(models.Model):
name = models.CharField(max_length=32)
book = models.ForeignKey(BookInfo, on_delete=models.CASCADE) def get_book(self):
return self.book.title get_book.short_description = "书名"

说明:不需要定义主键列,在生成时会自动添加,并且值为自动增长

激活模型:编辑settings.py文件,将booktest应用加入到installed_apps中

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

生成迁移文件:根据模型类生成sql语句

python manage.py makemigrations

migrations目录中

# Generated by Django 2.2.1 on 2019-06-09 01:49

from django.db import migrations, models
import django.db.models.deletion class Migration(migrations.Migration): initial = True dependencies = [
] operations = [
migrations.CreateModel(
name='BookInfo',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=32)),
('time', models.DateTimeField()),
],
),
migrations.CreateModel(
name='HeroInfo',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=32)),
('book', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='booktest.BookInfo')),
],
),
]

执行迁移:执行sql语句生成数据表

python manage.py migrate

创建一个管理员用户

python manage.py createsuperuser,按提示输入用户名、邮箱、密码

编辑settings.py文件,设置编码、时区

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

向admin注册booktest模块(admin.py)

from django.contrib import admin
from .models import BookInfo, HeroInfo # Register your models here.
class HeroInfoInline(admin.StackedInline):
model = HeroInfo
extra = 1 class BookInfoAdmin(admin.ModelAdmin):
list_display = ['id', 'get_title', 'time']
inlines = [HeroInfoInline] admin.site.register(BookInfo, BookInfoAdmin) class HeroInfoAdmin(admin.ModelAdmin):
list_display = ['name', 'get_book'] admin.site.register(HeroInfo, HeroInfoAdmin)

URLConf配置(项目urls.py)

from django.contrib import admin
from django.urls import path, include, re_path urlpatterns = [
path('admin/', admin.site.urls),
re_path('^', include("booktest.urls"))
]

模块urls.py编写

from django.urls import path, re_path
from .views import index urlpatterns = [
re_path("^$|index$", index)
]

创建模板

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<h1>首页</h1>
</body>
</html>

创建视图

from django.shortcuts import render

# Create your views here.

def index(request):
return render(request, "booktest/index.html")

运行项目

python manage.py runserver ip:port

最新文章

  1. Centos6下安装高版本Git
  2. Cocos2d-x 3.2 学习笔记(六)Layer
  3. CentOS 6.4下编译安装 gcc-4.8.0(转)
  4. C++中文件按行读取和逐词读取 backup
  5. 学习日记day9: PC端页面流程优化
  6. Retina CS强大漏洞检测工具
  7. ecshop用户中心订单详情增加快递单物流信息查询显示的功能
  8. 【回顾整理】暴走的SQL语句练习!!!
  9. 【vijos1943】上学路上
  10. ArrayDataProvider数据分页
  11. wepy框架自定义组件编译报错not Found File XXX.wxss
  12. 解决使用maven的java web项目导入后出现的有关问题 -cannot be read or is not a valid ZIP file
  13. VirtualBox虚拟机网络设置说明
  14. 简单的ld链接脚本学习
  15. Python笔记(十七):生成器
  16. POJ 3974 - Palindrome - [字符串hash+二分]
  17. java的环境变量
  18. android 圆角编写(懒得去找,写给自己看的)
  19. How to use POST method in Tornado?
  20. tomcat 启动报 找不到 StrutsPrepareAndExecuteFilter。。

热门文章

  1. openstack(2) -------RabbitMQ集群部署
  2. RELU 激活函数及其他相关的函数
  3. 20160225.CCPP体系具体解释(0035天)
  4. kafka 生产者消费者 api接口
  5. linux select poll and epoll
  6. edittext 底线颜色
  7. c# 关于一些数值转换的整理(部分)
  8. 【前端】window.resize的优化
  9. [POI2011]LIZ-Lollipop
  10. POJ 3734 Blocks 矩阵递推