目录
path(route,view,kwargs=None,name=None)
参考文档django文档
用户:mysql -uroot -p
密码 qwe123
可以用你自己创建的用户名及密码,例如:
用户:mysql -uyyy -p
密码:123456
show databases;
use class15db;
查看现在class15db库中有什么:
show table;
可以看出有一个表,叫goodluck的表。
你也可以重新创建一个库,例如创建一个mm的库
create database mm;
在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',????????#端口号(默认) } }
可以在pycharm的终端打开,也可以在cmd中打开。这里是在cmd中打开的:
在cmd中,输入workon python-Django(你自己的虚拟环境的名字),这样就进入到虚拟环境中了
输入pip list 可查看当前虚拟环境中有哪些包,可看出没有我们要的pymsql,要安装它。
输入pip install pymsql -i https://pupi.tuna.tsinghua.edu.cn/simple
找到__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数据库中创建的表
show tables;
可看出多出来好多的表,都是系统创建的,这里我们选用auth_user这个表。
查看auth_user这个表的字段
select * from auth_user
可以看出,用户名,邮箱,密码是被进行加密过了的,以及创建时间等。
也可以查看表的结构
desc auth_user;
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 写入功能
常用的转换器? ? 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/? ? 则在页面中显示出:我今天不开心,你呢?
在应用目录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))
点击运行结果下面的连接,在页面是路径中加入参数小明,显示以下结果。
在应用目录first_items的urls.py文件下输入,
在应用目录first_items的views.py文件下输入:
在网页中的路径下输入路径名称,显示
如果有多个键值对的,通过**kwargs取值
def eat(requeat,**kwargs): print(kwargs) return HttpResponse(kwargs.get('what_eat'))
运行结果如下,在通过键值对取值
eg:
看出输入的参数是字符串类型
通过转换器? int:将字符串类型转变成整数类型
运行结果:
在项目目录的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]}')
在网页中输入路径名称,参数,就会显示: