# 安装django
#### 指定版本
`pip install django==1.11.28`
#### 不指定版本
`pip install django`
# 通过命令行创建 django django-admin startproject 文件名
# 目录介绍
mysite/
-->manage.py #管理文件
-->mysite #项目目录
--->_init_.py
--->settings.py #配置文件
--->urls.py # 路由 --> url和函数的对应关系
--->wsgi.py # runserver命令就使用wsgiref模板做简单的web server
# 运行django 项目
#### 命令行: `python manage.py runserver ` # 127.0.0.1 :8000
#### 命令行: `python manage.py runserver 80` # 127.0.0.1 :80
#### 命令行: `python manage.py runserver 0.0.0.0:80` # 0.0.0.0:80
## 配置sttings
### 静态文件
STATIC_URL = 'static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
### 模板文件
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [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
INSTALLED_APPS #添加注册的app
# 'app01', #直接写app的名称
'app01.apps.App01Config', #推荐写法
### 中间件
#### 'django.middleware.csrf.CsrfViewMiddleware', #过滤跨站请求伪造保护 可以提交post请求
## urls.py 路径和函数的对应关系
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index),
path('login/', views.login),
]
## views.py 写函数
def login(request):
# 业务逻辑
# request.method 请求方法
# request.POST post请求
# request.GET get请求
if request.method =='POST':
user = request.POST.get('user')
pwd = request.POST.get('pwd')
print(user, pwd)
# if user=='Yingnan.Zhang' and pwd =='1234':
if models.User.objects.filter(username=user, password=pwd):
# return HttpResponse('登录成功')
# 重定向
# return redirect('/index')
return render(request, 'index.html')
# 返回结果
# 返回一个字符串
# return HttpResponse('index')
# 返回一个HTML页面
return render(request, 'login.html')
# app的创建和注册
#### 方式一:
运行`python manage.py startapp app名` 进行创建
#### 方式二:
->Tools->Run manage.py Task-> startapp app名
#### 方式三:
新建django项目时 输入app名
#### 文件信息
app名
-->#admin管理后台 admin.py
--># app app.py
-->#orm models.py
--># 函数 viwes.py
# 使用orm
orm 对象关系映射 通过操作类,对象的方式去操作数据库
orm对应关系
类 --> 表
对象 --> 数据行(记录)
属性 --> 字段
## 1.在settings中配置数据库连接
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
## 2.在app下的models.py中写类:
class User(models.Model):
username = models.CharField(max_length=32) #varchar
password = models.CharField(max_length=32) #varchar
## 3. 执行数据库迁移的命令
### 检测所有app下的models.py文件有什么变化,将变更记录制作成迁移文件
`python manage.py makemigrations`
### 数据库的迁移 将变更记录同步到数据库中
`python manage.py migrate `
### orm 操作
# 查询所有
ret = models.User.objects .all()
# 输出信息 和类型
print(ret, type(ret))
# 输出 单个是用户名 和密码
for i in ret:
print(i, i.username, i.password)
# ret = models.User.objects.get(username='admin') #获取一条数据 获取不到或者多条数据 就报错
ret = models.User.objects.filter(username='admin') #获取满足条件的对象
## 4.使用mysql数据库的流程
### 1. 创建数据库
### 2. 编写配置文件settings
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'netshop',
'HOST': 'ip',
'PORT': '3306',
'USER': ' ',
'PASSWORD': ' ',
}
}
### 3. 使用pymyql 的模块连接数据库
习惯写入到与项目同名的的文件夹下的 __init__.py中
import pymysql
pymysql.version_info = (1, 4, 13, "final", 0)
pymysql.install_as_MySQLdb()
### 4. 在app下的models.py中写类:
class User(models.Model):
username = models.CharField(max_length=32) #varchar
password = models.CharField(max_length=32) #varchar
### 5.执行数据库迁移的命令
#### 检测所有app下的models.py文件有什么变化,将变更记录制作成迁移文件
`python manage.py makemigrations`
#### 数据库的迁移 将变更记录同步到数据库中
`python manage.py migrate `
django学习
于 2023-05-23 11:14:36 首次发布