Python之后端Django(二)

Day/2

模型:

mysql数据库服务端软件安装:sudo apt-get install mysql-server
mysql数据库命令行客户端安转:sudo apt-get install mysql-client

数据库操作基本流程:

  1. 创建数据库 (create database 数据名称 charset=utf8;)

  2. 使用数据库 (use 数据库名称)

  3. 创建表

    ORM框架:“o”——》类对象 “m”——》映射 “r”——》关系

    数据库的表——》类

    数据库中的行——》对象

    数据库中的字段——》属性

    “重点内容”:

    1. 定义模型时,必须继承Model类

      django只需在model内编写自动创建

      class BookInfo(models.Model):
          """
          1. 主键会自动生成
          """
          name = models.CharField(max_length=10)  # 最大长度
      
      
      class PeopleInfo(models.Model):
          # 人名
          name = models.CharField(max_length=10)
          # 性别
          gender = models.BooleanField()
          # 外键
          book = models.ForeignKey(BookInfo)
      
    2. 定义属性时,语法格式:属性=models.字段类型(选项)

      django字段类型:https://www.cnblogs.com/jingzaixin/p/8670094.html

    3. 需要执行两句指令:

      在pycharm的命令行中输入指令

      一、生成迁移文件

      python manage.py makemigrations
      

      二、同步到数据库中

      python manage.py migrate
      
  4. 登录站点http://127.0.0.1:8000/admin

    第一次登录后是无账号无密码的,需要手动创建,密码长度要8位,切包含数字和字母

    指令: python manage.py createsuperuser

    注册模型类:admin.site.register(模型类) 在admin.py文件中

    from django.contrib import admin
    from users.models import BookInfo,PeopleInfo
    # Register your models here.
    
    # 注册书籍模型类
    admin.site.register(BookInfo)
    # 注册人物模型类
    admin.site.register(PeopleInfo)
    

    遇到一个问题,在后台新增数据时,生成的效果都是BookInfo object,无法区分!

    方法:指定打印出str()函数

    def __str__(self):
      # 重写str函数,动态显示示例属性的值
      return self.name
    
    

    总结:

    1. 设置后台中文显示,注册管理员账户

    2. 注册模型表

    3. 重写str函数

视图: views.py文件

http://127.0.0.1:8000/users/index运行

视图的概念:就是一个写在views.py中的python函数

特点:

  1. 视图函数必须要有一个参数,接收request请求对象,且写在第一个

  2. 视图函数必须要有响应对象

注意:先从demo查到urls.py,在从urls.py查到users子应用,还能找得到,就找子应用里的urls.py查到views.py

demo中的urls.py

from django.conf.urls import url, include
from django.contrib import admin

# 路由
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # include函数
    url(r'^users/', include('users.urls')),
]

子应用users里的urls.py

from django.conf.urls import url
from users.views import index

urlpatterns = [
    url(r'^index/', index),
]

子应用users中的views.py

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.

# 定义一个视图函数
def index(request):
    return HttpResponse('这是第一次写视图函数')

路由URL:

  1. 查找规则从上至下,会有屏蔽效应,解决的方法:正则内最后加个$符号即可,但是一般是在子路由里加,工程总路由不加。

    urlpatterns = [
      url(r'say$', views.say),
      url(r'sayhello$', views.sayhello),
    ]
    
  2. urlpatterns 是固定写法,不能更改

模板:

作用:将前端的代码抽离出来,定义在模板中,降低耦合度

“模板的使用步骤”:

  1. 创建模板,在子应用的同级目录下,文件夹的名字固定写法:templates

  2. 设置模板的路径

  3. 模板接收视图传入的数据

  4. 模板处理数据

在settings配置文件中‘template’的DIRS中添加os.path.join(BASE.DIR, ‘templates’)表示固定到指定文件下寻找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跨界科技汇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值