·····说明
不要根据我的项目名称创建!!!用你自己的。根据B站IT三师兄25 的教学视频写的,会不定时更新,如果有什么错误的地方麻烦指出,欢迎交流。
目录
1,环境的搭建
1.1创建项目
查看python版本 >>> py -0p
1.2快速上手
通过cmd命令创建项目,见http://t.csdnimg.cn/Qf1sL或者http://t.csdnimg.cn/0c5IT
创建成功后,结构如下
在urls.py编写如下代码
from django.contrib import admin
from django.urls import path
from django.shortcuts import HttpResponse
def login(request):
return HttpResponse("登录页面")
urlpatterns = [
path('admin/', admin.site.urls),
]
1.3快速启动
网站启动起来,通过浏览器就可以访问了。
-
打开终端进入项目根目录(dir看到manage.py)
-
执行命令,启动网站
python manage.py runserver 127.0.0.1:8000 python manage.py
1.4 通过Pycharm 创建项目
>>>pip install django==4
-
创建项目
-
启动项目
1.41 创建项目
git库可以不创建。
1.42 可能的BUG
是pycharm导致的。
1.43 编写
1.5 不专业
函数不应该和url写在一起
1.6 APP
在django项目中创建APP,在APP中编写项目的具体业务。
在pycharm终端执行以下命令
python3.12 manage.py startapp web
创建成功产生该文件夹。
小结
-
安装django框架
pycharm终端执行
pip install django==4
-
创建项目
-
命令:(pycharm终端执行)
django-admin startproject 项目名
-
pycharm
-
-
创建APP (pycharm终端执行)
python3.12 manage.py startapp web
-
编写业务代码
-
url.py
-
主要放函数的对应关系
from django.contrib import admin from django.urls import path from web.views import login urlpatterns = [ path('admin/', admin.site.urls), path('login/',login) ]
-
-
view.py
-
处理url请求的功能
from django.shortcuts import render from django.http import HttpResponse def login(request): return HttpResponse("登录页面")
-
-
2,初识视图函数
前面的示例
from django.shortcuts import render
from django.http import HttpResponse
def login(request):
return HttpResponse("登录页面")
from django.http import HttpResponse
def login(request):
#。。。例如:用户名、密码--> 数据库校验
return HttpResponse("登录页面")
-
request
-
包含用户请求相关的所有内容
-
可以在request中获取用户提交的数据等信息
-
-
中间、业务逻辑操作
-
返回值,返回的什么体现用户浏览器的行为不同
小结
-
参数,去request中获取
-
中间。
-
返回值
-
setting.py
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'web.apps.WebConfig', ] ........ TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR,'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
-
单独app的模板,在app中写;公共的就在最外层的templates中写HTML模板。
-
3,初识模板
web框架中都要用到模板的语法,用户看到的值都是动态的。
view.py
from django.shortcuts import render,redirect
from django.http import HttpResponse
# Create your views here.
def login(request):
return HttpResponse("登录页面")
def user_list(request):
#1.数据库获取所有的用户列表
data = ["11111","22222","33333","44444","55555"]
mapping = {"name":"张三","age":"13","gender":"女","address":"四川雅安",}
#2.打开文件并读取内容
#3.模板渲染 ---> 文本替换
return render(request,'user_list.html',{'massage':"标题","data_list":data,"mapping":mapping})
新建一个html,并写入
user_list.HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>{{ massage }}</h1>
<ul>
{% for item in data_list %}
<li>{{ item }}</li>
{% endfor %}
</ul>
<a>{{ data_list.3 }}</a>
<span>{{ mapping.name }}</span>
<span>{{ mapping.age }}</span>
<span>{{ mapping.gender }}</span>
<span>{{ mapping.address }}</span>
<hr>
<div>
{% for item in mapping.keys %}
<li>{{ item }}</li>
{% endfor %}
</div>
<hr>
<div>
{% for item in mapping.values %}
<span>{{ item }}</span>
{% endfor %}
</div>
</body>
</html>
注意:
效果
4,静态文件的处理
图片、css、js等。
案例:登录并跳转
新创建一个项目,先停下原来的项目。
5,ORM
ORM,对象关系映射。
//类
class UserInfo:
id = IntegerField
name = CharField
age = IntegerField
email = CharField
5.1自己创建数据库
5.2创建表结构
去APP下的models.py中创建指定的类+命令,自动创建表。
5.2.1编写类
#在models.py 上添加类
from django.db import models
# Create your models here.
class UserInfo(models.Model):
name = models.CharField(verbose_name="姓名", max_length=16)
age = models.ImageField(verbose_name="年龄")
email = models.CharField(verbose_name="邮箱", max_length=32)
表结构如下:
5.2.2命令
-
先连接上数据库
//setting设置,找到DATABASES,将原来的注释掉。将下面的粘贴上去
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'demo1', #这个是数据库名称
'USER': 'root', #用户名
'PASSWORD': '123456', #连接数据库密码
'HOST': '127.0.0.1',
'PORT': 3306, #接口
}
}
-
python代码连接数据库:pymysql、mysqlclient
//安装
pip3.12 install mysqlclient
接下来再去pycharm终端执行一下命令
python3.12 manage.py makemigrations
python3.12 manage.py migrate
-
makemigrations ,读取已经注册所有的app中的models.py文件,根据类生成配置文件并放到APP下的migrations目录
-
migrate,根据配置文件在自动生成相应的SQL语句。如下的sql语句。
creat table demo_userinfo(
id int ....
name ...
age ...
email ...
)
创建成功
5.2.3 继以上操作,添加新表
//在models.py 上添加新类
# Create your models here.
class Department(models.Model):
title = models.CharField(verbose_name="标题",max_length=32)
再次执行以下命令即可在数据库创建新表
python3.12 manage.py makemigrations
python3.12 manage.py migrate
创建成功
5.3.4 修改
在models.py的类中修改完成后,再pycharm终端执行一下命令即可修改成功。
python3.12 manage.py makemigrations
python3.12 manage.py migrate
小结
-
自己创建数据库
-
django配置连接数据库
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'demo1', #这个是数据库名称 'USER': 'root', #用户名 'PASSWORD': '123456', #连接数据库密码 'HOST': '127.0.0.1', 'PORT': 3306, #接口 } }
-
python操作mysql模块
pip3.12 install mysqlclient
-
models.py【经常做】
from django.db import models # Create your models here. class UserInfo(models.Model): name = models.CharField(verbose_name="姓名", max_length=16) age = models.IntegerField(verbose_name="年龄") photo = models.ImageField(verbose_name="照片") email = models.CharField(verbose_name="邮箱", max_length=32) class Department(models.Model): title = models.CharField(verbose_name="标题",max_length=32) #CharField 字符串 #ImageField 图像
-
命令【经常做】
python3.12 manage.py makemigrations python3.12 manage.py migrate
-
创建成功