Django实现图书管理的小结

本文详细介绍了使用Django搭建图书管理系统的步骤,包括Django命令的使用、settings.py配置、数据库设置、URL路由、视图函数、表单处理及ORM操作。重点讲解了如何配置Django使用MySQL数据库,以及模板语法的应用。
Django相关的命令:

​ 1.下载安装Django

pip install django==1.11.28 -i 源

​ 2.创建Django项目:

django-admin startproject 项目名

​ 3.启动项目,需要切换到项目根目录下

python manage.py runserver
python manage.py runserver 80
python manage.py runserver 0.0.0.0:80

​ 4.创建app

python manage.py startapp app名

​ 5.创建数据库迁移命令

python manage.py makemigrations #记录数据变更
python manage.py migrate #将变更同步到数据库
setting.py的相关配置

​ 1.BASE_DIR 项目的更目录 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(_ file_)))

​ 优点:当迁移或者复制整个项目时。该项目仍然可以运行。

​ 2.INSTALLED_APPS 注册的app

​ 3.MIDDLEWARE 中间件

​ 注释掉csrf的中间件,之后才可以提交post请求。

​ 4.TEMPLATE 模板

​ 存放的是html文件

​ 指定模板所在的位置:‘DIRS’: [os.path.join(BASE_DIR),‘templates’],

​ 5.DATABASE 数据库

​ 6.static 静态文件

​ STATIC_URL = “/static/” #静态文件夹STATICFILES_DIRS的一个别名。这个别名用在程序中方便

​ STATICTILES_DIRS = [

​ os.path.join(BASE_DIR,“static”) #这里的这个static才是项目中的文件夹的名称。上面的是用在程序中的别名。

​ ]

Django使用mysql数据库流程

​ 1.创建一个mysql的数据库 create database bookManager;

​ 2.在settings.py 中的配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'bookManager',
        'HOST': '127.0.0.1',
        'PORT': 3306,
        'USER': "root",
        "PASSWORD": "root",
    }
}

​ 3.使用pymysql模块连接mysql数据库

​ 在与项目同名的文件夹下的_ init_.py中写入:

import pymysql
pymysql.install_as_MySQLdb()

​ 4.在app下的models.py中写入model(Model):

from django import models

#model模型都需要继承models.Model这个类。
class User(models.Model): #对应于msyql数据库中的表名叫做 app名_user(默认)
    #自动生成主键
    username = models.CharFiled(max_lenth = 32)

​ 5.执行数据库迁移的命令:

python manage.py makemigrations #记录数据变更
python manage.py migrate #将变更同步到数据库
URLS.py 路径和函数的对应关系

​ 函数是写在了view.py中了

from app01 import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^publisher_list/', views.publisher_list),
    url(r'^publisher_add/', views.publisher_add),
    url(r'^publisher_del/', views.publisher_del),
    url(r'^publisher_update/', views.publisher_update),

]
view.py 函数文件夹
from django.shortcuts import render, HttpResponse, redirect

def xxx(request):
    request.method
    request.GET 	#以字典的方式返回get提交的数据,并且可以通过get()方法获得
    request.GET.get("key")
    request.POST	#以字典的方式返回post提交的数据,并且可以通过get()方法获得
    request.POST.get("Key")
    
    #业务逻辑
    
    return
	 #1.返回一个字符串: return HttpResposne("你好!!!")
     #2.返回render包装的html页面: return render(request,"(模板的文件名)xxx.html",{字典:渲染页面的一些信息})
     #3.返回重定向(项目中的路径或者网络地址): return redirect("地址")
form表单,使用注意3点

​ 1.form表单的两个重要属性action,method

​ 2.要有数据框input

​ 3.有一个提交按钮button 或者是 input标签当input标签的type属性必须是submit

<form action = "" method = "post/get">
    <input name = "name" value = "" readonly> 
    <submit>提交</submit>
    <input type = "submit">
</form>
ORM:对象关系映射。通过操作类和对象的方式来操作数据库

​ 1.创建对象,执行数据迁移以后就会在数据库中生成对相应的表

from django.db import models
#类--表
#对象--记录
#属性--字段
class User(models.Model):
    username = models.CharField(max_length=32)  #models.CharFiled对应数据库中的varchar类型
    passwd = models.CharField(max_length=32)  #models.CharFiled对应数据库中的varchar类型

​ 2.查询操作

from app01 import models

models.User.object.all() #查询User这张表中的所有数据,返回结果是一个 对象列表(QuerySet)
models.User.object.get(pk = "",username = "" ) #查询返回一个数据 一个User对象
models.User.object.filter(pk = "",username = "" ) #返回多个结果 返回结果是一个 对象列表(QuerySet)或者是空列表

​ 3.添加操作

models.User.object.create(username="wang") #向user表中添加一条username="wang"的数据,返回结果是一个User对象。id自增

​ 4.删除操作:查询出来直接删除

models.User.object.get(pk = "",username = "" ).delete() #删除一个对象
models.User.object.filter(pk = "",username = "" ).delete() #删除多个对象

​ 5.修改操作

user_obj = models.User.object.get(pk = "",username = "" )
user_obj.username = "xxx"
user_obj.save()#提交到数据库
模板语法
#render可以完成对template的渲染。
return render(request,".html",{ "message_error" : "出错信息!!!"})
#在html中使用渲染信息定义的变量
{{ message_error }}
#html中代码的语法
{% %}

{% for i in user_list %}
	{{ forloop.counter }}
    {{ i.username }}
{%endfor%}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值