创建项目

创建app     python manager.py startapp app01

修改、添加url

from django.conf.urls import url,include
from django.contrib import admin
from app01 import urls as bookurls urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^book/', include(bookurls)),
] #待会在app01添加二级URL目录,事先导入 app01 的url 重命名为bookurls,只要访问book的url全部转给app01下目录下的url文件#处理

app01的url

from django.conf.urls import url,include
from app01 import views
urlpatterns = [
url(r'^$', views.index),
]

  

修改添加views

from django.shortcuts import render,HttpResponse,HttpResponseRedirect
# Create your views here. def index(request):
return render(request,"index.html") #render 渲染 到index.html页面,注意两个参数,一个request,一个字符串
#HttpResponse 返回写的字符串内容

  

添加模版 index.html

添加 models

from django.db import models

# Create your models here.

class Publisher(models.Model):
name = models.CharField(max_length=32,unique=True)
address = models.CharField(max_length=32) def __str__(self):
return "<%s>" %(self.name) class Author(models.Model):
first_name = models.CharField(max_length=32)
last_name = models.CharField(max_length=32)
email = models.EmailField() def __str__(self):
return "<%s %s>" %(self.first_name,self.last_name) class Book(models.Model):
name = models.CharField(max_length=128)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publisher_date = models.TimeField() #以上使用 def __str__(self)的作用
#添加这个是为了,让这个表里的内容显示正常不然显示的是XXXobject

  

修改settings,在里面添加app01

同步数据库  python manager.py makemigrations       python manager.py  migrate

修改注册admin

from django.contrib import admin

# Register your models here.

from app01 import models

admin.site.register(models.Author)
admin.site.register(models.Publisher)
admin.site.register(models.Book)

以上没有定义 template index.html文件  访问用的django自带的admin  记得创建用户

python  manager.py createsupersuer   

基础二:

简单实现     后台数据简单的展示到前端

views先定义需要展现的内容

def index(request):
user_info = [
{'username':'alex','name':'ALEX LI'},
{'username':'2alex','name':'2ALEX LI'},
{'username':'3alex','name':'3ALEX LI'},
{'username':'4alex','name':'4ALEX LI'},
]
return render(request,"index.html",{"user_obj":user_info})
# return render(request,"index.html")

  

编辑index.html文件  使用jinjia2模版语言

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
{{ user_obj }}
{# <form action="">#}
{# <input><button type="submit">SUB</button>#}
{# </form>#}
</body>
</html>

  

数据展现之从数据库读取数据展现到前端【记得修改url  添加 url(r'^booklist', views.book), 】

views

from django.shortcuts import render,HttpResponse,HttpResponseRedirect
from app01 import models
# Create your views here. def index(request):
user_info = [
{'username':'alex','name':'ALEX LI'},
{'username':'2alex','name':'2ALEX LI'},
{'username':'3alex','name':'3ALEX LI'},
{'username':'4alex','name':'4ALEX LI'},
]
return render(request,"index.html",{"user_obj":user_info})
# return render(request,"index.html") def book(request):
books = models.Book.objects.all()
if request.method =='POST':
print(request.POST)
return render(request,'book.html',{'books':books}) # return render(request,'book.html',{'books':books})这句话是渲染到book页面,把从数据库取出来的值通过jinja2模版传到前端

book

<body>
<ul>
{% for book in books %}
<li>{{ book.name }}</li>
{% endfor %} </ul>
<form method="post" action="/book/booklist/"> {% csrf_token %}
book name:<input type="text" name="name">
<input type="submit" value="创建新书">
</form>
</body> #如果想在后台展示,必须加 name=“XXX”的字段,不然后头不显示提交的数据

  

后台会出现提交的内容如下

把提交的内容放入数据库,并在前端展示

def book(request):
if request.method =='POST':
bookname = request.POST.get('name')
print(bookname)
new_book = models.Book(name=bookname,
publisher_id = 1,
publisher_date = '11:12:12' )
new_book.save()
books = models.Book.objects.all()
return render(request,'book.html',{'books':books})

  

待续......

具体的代码实例参见  https://github.com/mumulizi/day16djangoHomework

Django (一) 基础的更多相关文章

  1. Python之路【第十六篇】:Django【基础篇】

    Python之路[第十六篇]:Django[基础篇]   Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...

  2. Python开发【第二十一篇】:Web框架之Django【基础】

    Python开发[第二十一篇]:Web框架之Django[基础]   猛击这里:http://www.cnblogs.com/wupeiqi/articles/5237704.html Python之 ...

  3. 【Python全栈-后端开发】Django入门基础-2

    Django入门基础知识-2 一 .模版 一.模版的组成 HTML代码+逻辑控制代码 二.逻辑控制代码的组成 1  变量(使用双大括号来引用变量) {{var_name}} 2  标签(tag)的使用 ...

  4. Django笔记 —— 基础部分总结

    最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...

  5. Django 08 Django模型基础3(关系表的数据操作、表关联对象的访问、多表查询、聚合、分组、F、Q查询)

    Django 08 Django模型基础3(关系表的数据操作.表关联对象的访问.多表查询.聚合.分组.F.Q查询) 一.关系表的数据操作 #为了能方便学习,我们进入项目的idle中去执行我们的操作,通 ...

  6. Django 07 Django模型基础2 (常用查询和多表关联)

    Django 07 Django模型基础2 (常用查询和多表关联) 一.常用查询 #查找数据 def search_user(request): #获取 rs = User.objects.first ...

  7. Django 06 Django模型基础1(ORM简介、数据库连接配置、模型的创建与映射、数据的增删改查)

    Django 06 Django模型基础1(ORM简介.数据库连接配置.模型的创建与映射.数据的增删改查) 一.ORM系统 #django模型映射关系 #模型类-----数据表 #类属性-----表字 ...

  8. Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用

    Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...

  9. django 的基础设计

    一.web程序工作流程 二.django  的基础介绍 目的:了解Django框架的作用和特点 作用: 简便.快速的开发数据库驱动的网站 Django的优势 快速开发 MVT 功能齐全 Django学 ...

  10. 【Django】--基础知识

    一 什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. Web应 ...

随机推荐

  1. pom文件继承与聚合

    1.简介 pom.xml文件是Maven进行工作的主要配置文件.在这个文件中我们可以配置Maven项目的groupId.artifactId和version等Maven项目必须的元素:可以配置Mave ...

  2. 初探ASP.NET Core 3.x (4) - 项目的重要组成

    目录 O 前请提要 I 启动部分 I.1 Program类 I.2 Startup类 I.2.1 这个类干什么呢?? I.2.2 特征?? I.3 appsettings.json I.4 launc ...

  3. Java框架之SpringMVC 04-视图解析-Spring表单-JSON-上传下载

    SpringMVC 视图解析 请求处理方法(controller方法)执行完成后,最终返回一个 ModelAndView 对象,即使出现异常也会返回一个 ModelAndView 对象.对于那些返回 ...

  4. Zero down time upgrade with OGG -from 11g to 12c.

    High level steps upgrade from 11g to 12c database: 1)    Check network between source and target. 2) ...

  5. C入门题目

    37. 反转一个3位整数 反转一个只有3位数的整数. 样例 样例 1: 输入: number = 123 输出: 321 样例 2: 输入: number = 900 输出: 9 注意事项 你可以假设 ...

  6. 第二阶段冲刺个人任务——one

    今日任务: 修改注册界面.

  7. Android的学习之路一

    在Android的道路上越走越远==,本着一颗童心去学习,没想到最后会成为自己的职业.看到过知乎上写的,并不是兴趣使比尔盖茨以及乔布斯他们成就斐然,而是他们真正的牛逼使得即使买大饼也能成为世界首富.然 ...

  8. 面试必备!Java核心技术100+面试题

    一线互联网公司工作了几年,我作为求职者参加了不少面试,也作为面试官面试了很多同学,整理这份面试指南,一方面是帮助大家更好的准备面试,有的放矢,另一方面也是对自己知识框架做一个体系化的梳理. 这篇文章梳 ...

  9. PyCharm2019.3.2专业版激活

    PyCharm2019.3.2专业版激活 Ryan 蚂蚁小黑  PyCharm 专业版激活 今天是除夕,在这阖家团圆的日子里,祝大家新春快乐,鼠年大吉,愿大家在新的一年里身体健康,万事如意! 新的一年 ...

  10. kali linux下的部分命令

    查看发行版本 cat    /etc/issue cat   /etc/*-release 查看内核版本 uname  -a 显示机器的处理器架构 arch uname -m 清屏 clear 命令行 ...