创建项目

创建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. dp-完全背包(题)

    理解了这道题 , 我感觉对背包又有了一个更深的认识 …… HDU  2159 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务.久而久之xhd开始对杀怪产生的厌恶感, ...

  2. STL 结构体内重载 一个比较运算符

    struct node { ll a, b; bool operator< (const node &c)const{ return a < c.a; } }pre[eps];

  3. dfs序 + 树状数组

    You are given a tree, it’s root is p, and the node is numbered from 1 to n. Now define f(i) as the n ...

  4. NameError:name ‘xrange’ is not defined

    原因: 在Python 3中,range()与xrange()合并为range( ). 我的python版本为python3.5. 解决办法: 将xrange( )函数全部换为range( ).

  5. Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name

    目前有发现的两种情况 第一种:是在继承jpa的时候检查实体类@id和@Entity引进的包是否是 import javax.persistence.Id imprt javax.persistence ...

  6. pta 6-7 统计某类完全平方数 (20分)

    6-7 统计某类完全平方数 (20分) 本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144.676等. 函数接口定义: int IsTheNumber ...

  7. 【转】在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解)

    原文:http://www.cyqdata.com/cnblogs/article-detail-35876# 背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件 ...

  8. 内部类、final与垃圾回收,面试时你一说,面试官就知道

    内部类并不常用,而且使用起来有一定的定式,比如在下面的InnterDemoByTrhead.java里,我们通过内部类的形式创建线程. 1 public class InnerDemoByThread ...

  9. 移动端ui框架

    https://blog.csdn.net/Robin_star_/article/details/81810197

  10. 当vps服务器被墙,如果用xshell连接

    当然你的被墙了,肯定是访问不了,你得去找一个新的可用的节点去访问,在xshell里面设置代理就能连接上.上图. 然后是两个不同的结点 鼠标放在小火箭上面就能显示