django基础

一、学期准备

安装Django

pip install django==5.0.3 ,

安装pycharm专业版

二、第一个django项目

  1. 命令行方式创建:打开终端,使用命令:django-admin startproject 【项目名称】即可创建。

    django-admin startproject first_project

    • 创建app:一个项目类似于一个架子,但是真正起作用的还是app。在终端进入到项目所在的路径,然后执行python manage.py startapp [app名称] 创建一个app。
  2. 使用pycharm创建

  3. 运行django项目

    python manage.py runserver 0.0.0.0:8080

python 复制代码
urlpatterns = [
    path('admin/', admin.site.urls),
    path('book/',views.book_detail_query_string),
    # 如果输入book_id是一个非整形,会出现404错误: book/abc
    # 在视图函数中得到的book_id就是一个整型,否则,默认是str类型
    # 除了int类型,还有str,slug,uuid,path类型
    path('book/<int:book_id>',views.book_detail_path)
]



# 1. http://127.0.0.1:8080/book?id=2
def book_detail_query_string(request):
    # request.GET = {'id':3}
    book_id = request.GET.get('id')
    print(request.GET)
    return  HttpResponse("图书的id是"+book_id)


# http://127.0.0.1:8080/book/2
def book_detail_path(request,book_id):
    return  HttpResponse(f"您查找的图书id是{book_id}")

path函数

path() 可以接收四个参数,两个必选参数:routeview 两个可选参数:kwargs name

  • route: 字符串,定义 URL 的路径部分。可以包含变量,例如 <int:my_variable>,以从 URL 中捕获参数并将其传递给视图函数。
  • view: 视图函数,处理与给定路由匹配的请求。可以是一个函数或一个基于类的视图。
  • kwargs(可选): 一个字典,包含传递给视图函数的额外关键字参数。
  • name(可选): 为 URL 路由指定一个唯一的名称,以便在代码的其他地方引用它。这对于在模板中生成 URL 或在代码中进行重定向等操作非常有用。 (即是说 可以根据名字 反向获得路由)

三、如何操作数据库

3.1 django连接数据库配置

安装MySQL驱动

pip install PyMySQL

在Django的工程同名的子目录的__init__.py文件中添加如下语句

from pymysql import install_as_MySQLdb

install_as_MySQLdb() # 让pymysql以MySQLDB的运行模式和Django的ORM对接运行

修改database配置信息settings.py

python 复制代码
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.0.0.1', # 数据库主机
        'PORT': 3306, # 数据库端口
        'USER': 'root', # 数据库用户名
        'PASSWORD': '123', # 数据库用户密码
        'NAME': 'student' # 数据库名字
    }
}

注意 如果想打印orm转换过程中的sql,需要在settings中进行如下配置:

python 复制代码
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console':{
            'level':'DEBUG',
            'class':'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['console'],
            'propagate': True,
            'level':'DEBUG',
        },
    }
}  

(1)生成迁移文件

所谓的迁移文件, 是类似模型类的迁移类,主要是描述了数据表结构的类文件.

python manage.py makemigrations

(2)同步到数据库中

python manage.py migrate

补充:在django内部提供了一系列的功能,这些功能也会使用到数据库,所以在项目搭建以后第一次数据迁移的时候,会看到django项目中其他的数据表被创建了。其中就有一个django内置的admin站点管理。(这个后面会写)

模型中Meta配置

python 复制代码
class Book(models.Model):
    name = models.CharField(max_length=20,null=False)
    desc = models.charField(max_length=100,name='description')
    
    class Meta:
        db_table = 'book_model'
        ordering = ['_create_time','name']

以下将对Meta中的一些配置做解释:

db_table: 数据库表名

ordering:设置在提取数据的排序方式