Django——连接mysql,视图目录与路由

发布时间:2024年01月17日

目录

连接数据库mysql

先登录虚拟机

可以查看你的数据库里面有几个库

进入class15db库中

连接mysql

更改配置

安装pymsql?

在pycharm中改一下pymsql的名字

要进行迁移

创建超级管理员账号

查看class15db库中的所以表

视图目录与路由

manage.py

项目目录

应用目录

路由

path(route,view,kwargs=None,name=None)

如何在路径中传参kwarg

如何在路径中传入关键字传参kwargs

改变参数的类型,用转换器

name参数具体怎么用

总结合并

连接数据库mysql

参考文档django文档

先登录虚拟机

用户:mysql -uroot -p

密码 qwe123

可以用你自己创建的用户名及密码,例如:

用户:mysql -uyyy -p

密码:123456

可以查看你的数据库里面有几个库

show databases;

进入class15db库中

use class15db;

查看现在class15db库中有什么:

show table;

可以看出有一个表,叫goodluck的表。

你也可以重新创建一个库,例如创建一个mm的库

create database mm;

连接mysql

更改配置

在pycharm中找到settings.py文件,在里面找到DATABASES

根据django文档,更改DATABASES里面的配置。如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'class15db',   #数据库的名字
        'USER': 'yyy', ????????#用户名
        'PASSWORD': '123456',  #密码
        'HOST': '127.0.0.1',???#主机号(默认)
        'PORT': '3306',????????#端口号(默认)
    }
}

安装pymsql?

可以在pycharm的终端打开,也可以在cmd中打开。这里是在cmd中打开的:

在cmd中,输入workon python-Django(你自己的虚拟环境的名字),这样就进入到虚拟环境中了

输入pip list 可查看当前虚拟环境中有哪些包,可看出没有我们要的pymsql,要安装它。

输入pip install pymsql -i https://pupi.tuna.tsinghua.edu.cn/simple

在pycharm中改一下pymsql的名字

找到__init__.py文件,输入:

import pymysql

pymysql.install_as_MySQLdb()

运行一下,能返回127.0.0.1:8000/,但是提示还需要进行迁移操作

要进行迁移

pycharm终端,输入:python .\manage.py migrate

创建超级管理员账号

(之前在mysql中有,创建过了可以不用在创建)

输入:python .\manage.py createsuperuser

用户:admin

邮箱:admin@qq.com

密码:123456

密码:123456

输入:y

创建成功。

在次运行,之后打开虚拟机查看你在class15db数据库中创建的表

查看class15db库中的所以表

show tables;

可看出多出来好多的表,都是系统创建的,这里我们选用auth_user这个表。

查看auth_user这个表的字段

select * from auth_user

可以看出,用户名,邮箱,密码是被进行加密过了的,以及创建时间等。

也可以查看表的结构

desc auth_user;

视图目录与路由

manage.py

manage.py是项目入口文件,以后我们要是想启动项目的话,都是基于这个文件启动的。

项目目录

python_django这个是项目目录

项目目录下有:

__init__.py是包管理,

asgi.py是django3版本可以实现异步通信,wsgi.py也可实现,都是web服务器的入口,两种配置,多重选择。

settings.py是配置文件,可配置我们的中间件、路由、项目等。

urls.py可以通过它来解析我们的路径,找到对应的视图。映射关系,通过路径在urls.py中将项目与视图关联起来。

应用目录

可以通过命令来创建

pycharm中打开终端,输入django-admin startapp 项目名

eg:django-admin startapp first_items

则可看到:

可以创建多个应用目录

在创建模型时,先migrations创建迁移文件,在进行迁移,那我们的迁移文件就会在migrations这个包里面自动生成。

__init__.py这是个包

admin.py这是后台管理,在这里可以设置、字段、类型、排列等

apps.py里面进行了绑定,可以设置一些工具类等

models.py可以在这里创建表格,对应于mysql中

test.py模块化测试

views.py 写入功能

路由

path(route,view,kwargs=None,name=None)

  • route参数:专门用于拼接url的,路径参数,路径名称入口
  • view参数:指明路劲所对应的视图,于route又映射关系
  • kwarg:route中携带的参数,用<参数>表示(可传参)
  • kwargs:键值对传参,kwargs={'你是':'python'}
  • 转换器+kwargs参数:转换参数的类型,用<int:参数数字>表示
  • name参数,为url取一个名字,通过这个名字能逆向找到url路径

常用的转换器? ? int:? ?str:? ?uuid:通用唯一的标识码

在应用目录first_items下创建一个urls.py的文件,写入:

from django.contrib import admin
from django.urls import path, include

from .views import happy
urlpatterns = [
    path('admin/', admin.site.urls),
    path('happy/',happy)
]

在应用目录first_items下的views.py文件下写入:

from django.http import HttpResponse
from django.shortcuts import render

# Create your views here.


def happy(request):
    return HttpResponse('我今天不开心,你呢?')

然后在项目目录python_django下的urls.py中添加路径,导入模块

from django.contrib import admin
from django.urls import path, include

import first_items.urls
urlpatterns = [
    path('admin/', admin.site.urls),
    path('first_items/',include(first_items.urls))
]

在打开虚拟机,登录后,在运行,返回的127.0.0.1:8000/点击跳转到界面后在地址栏中加上first_items/happy/? ? 则在页面中显示出:我今天不开心,你呢?

如何在路径中传参kwarg

在应用目录first_items的urls.py文件下写入一个叫username的路径名字

在找到first_item中的views.py文件,写入函数:

def useranme(request,name):
    return HttpResponse(f'你的名字是{name}')

在项目目录python_django下的urls.py中写入first_items路径,有过就不用写了,(可查看上面)

path('first_items/',include(first_items.urls))

点击运行结果下面的连接,在页面是路径中加入参数小明,显示以下结果。

如何在路径中传入关键字传参kwargs

在应用目录first_items的urls.py文件下输入,

在应用目录first_items的views.py文件下输入:

在网页中的路径下输入路径名称,显示

如果有多个键值对的,通过**kwargs取值

def eat(requeat,**kwargs):
    print(kwargs)
    return HttpResponse(kwargs.get('what_eat'))

运行结果如下,在通过键值对取值

改变参数的类型,用转换器

eg:

看出输入的参数是字符串类型

通过转换器? int:将字符串类型转变成整数类型

运行结果:

name参数具体怎么用

在项目目录的urls.py文件下创建一个路径,用name参数给中路径取一个别名,代码如下:

    path('name_test/',name_test,name='hello_name')

在views.py中写入函数name_test

from django.http import HttpResponse
from django.urls import reverse #导入reverse模块
def name_test(request):
    return HttpResponse(f'name_test的路由是{reverse("hello_name")}')
#通过reverse()可以读取路径

在网页中输入路径则显示:

之后你要改变路径名,eg:将name_test变为name_test_text

    path('name_test_text/',name_test,name='hello_name')

网页显示:

总结合并

在项目目录first_test的urls.py文件下写入:

    path('all_together/<int:num>',all_together,name='nohappy',kwargs={'name':'小垃圾一个','color':'yellow','天气':'dusky'})

在项目目录first_test的views.py中写入:

def all_together(request,num,**kwargs):
    l=[num,kwargs]
    return HttpResponse(f'代号{l[0]},你要的参数{l[1]}')

在网页中输入路径名称,参数,就会显示:

文章来源:https://blog.csdn.net/m0_71454692/article/details/135564536
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。