Django (一) 基础

创建项目

创建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>

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

待续......

接下来是把提交的内容想办法放进数据库内,然后再前端显示

时间: 2024-10-21 23:51:09

Django (一) 基础的相关文章

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

Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 基本配置 一.创建django程序 终端命令:django-admin startproject sitename IDE创建Django程序时,本质上都是自动执行上述命令 其他常用命令: python manage.py runserver

windows上Python开发--3.Django的基础知识

最近两天下了班,没事学习了django的开发,今天做个总结.其实大家可以从百度,google搜到一些django的入门视频,初步了解一下django的框架.学习一些基础的概念和知识.本篇主要是对自己这两天做的做个总结. 1.创建第一个views.py 上一篇文章我们在windows上搭建好了django的开发环境并建立一个测试demo. 在settings.py的同级目录下新建views.py目录.并输入以下代码 from django.http import HttpResponse def

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

Python开发[第二十一篇]:Web框架之Django[基础] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5237704.html Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 基本配置 一.创建django程序 终端命令:django-a

创建Django项目基础

目录 创建Django项目基础 首先介绍一下必备三模块 静态文件配置 什么是静态文件 手动配置静态文件访问资源 接口前缀 动态解析 form表单 request对象及方法 什么是request对象 如何获取请求方式 pycharm中django连接数据库 django连接MySQL django orm介绍 orm对象关系映射 优缺点: 注意事项: 怎样去创建一张表? 数据库迁移(同步)命令[很重要!!!] 字段和数据的增删改查 字段的增删改查 数据(记录)的增删改查 查询数据get与filte

Django web 基础

Django大而全; 创建Django工程:django-admin startproject sitename Project Project settings url wsgi web model views test admin administrator D:\python_scripts\s11day17_Django>python manage.py startapp app01  #创建app:一个app是一个完整的软件或者功能: app下面的文件: models:对数据库操作的:

Django框架基础(一)

Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 1 安装 1 pip3 install django 2 # 创建Django程序 3 django-admin startproject mysite 4 # 进入程序目录 5 cd mysite 6 # 启动socket服务端,等待用户发送请求 7 python manage.py runse

Django——model基础

ORM 映射关系: 表名 <-------> 类名 字段 <-------> 属性 表记录 <------->类实例对象 创建表(建立模型) 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一的关系(one-to-one) 出版商模型:出版商有名称,所在城市以及email. 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者

pytchon自动化运维:Django Model基础

1.什么是ORM? ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法. 2.ORM的优缺点是什么? 优点:摆脱复杂的SQL操作,适应快速开发:让数据结构变得简洁:数据库迁移成本更低(如从mysql->oracle) 缺点:性能较差.不适用于大型应用:复杂的SQL操作还需通过SQL语句实现 创建表(建立模型)

Django框架基础

Django基础-Lesson1 web框架概念 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统. 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端.  socket模拟服务端 最简单的Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,返回. 如果要动态生成HTML,就需要把上述步骤自己来实现.不过,接受HTTP