django-admin startproject
创建子应用
python manage.py startapp
运行项目
python manage.py runserver
状态码
100 客户端可以继续请求http服务器
200 客户端请求服务端正常完成
301 客户端资源被移动到新的URL中
302 客户顿请求的资源被临时移动,客户端继续使用原有 URL;常用于三方登录之后的跳转
400 客户端语法错误或无法解析请求
403 服务端直接拒绝客户端的请求
404 客户端请求的资源找不到
405 客户端请求的方式不被允许
499 服务端处理该请求的内容花费时间过长
500 服务端内部错误 web服务配置文件读取错误 也可能是应为用户权限
静态与动态网站
静态网站
讲数据直接写死在页面中
动态网站数据不再是写死的,而是通过数据库等手段传递到这些坑位上
Django框架M-model:**模型**, *** 作数据库功能部分
V-View:**视图**,处理业务逻辑的位置,提取数据、获取用户数据等等 *** 作都在这里
T-Template:**模版**,用来展示视图 *** 作后的数据,也可以在模版中为用户提供表单,让用户可以提交数据
编写路由
打开项目主目录下的urls.py**文件,编写路由映射
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path('admin/', admin.site.urls), #admin 控制界面路由
path('',views.index)
]
访问一个页面其实就是通过一个URL连接地址找到了服务器上的一个视图函数
path(route, view, name)
route: 匹配规则,是一个字符串
view:对应的视图函数
配置模板
一般我们会把存放HTML的文件夹名字命名为template,翻译过来就叫做模版文件,至于为啥叫模版,我们稍后来揭晓
# project.settings.py
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',
],
},
},
]
创建模板
有了这个文件夹的配置之后,接下来在项目根目录下创建与配置同名的文件夹template/
并在其中书写一个简单的html,并命名为index.html
hi
真不错
今天这个天气是晴天
视图渲染
有了html,目录也配置好了,那么紧接着就是让视图去返回这个文件,那么现在我们要引入一个新的方法叫做render,这个方法专门用来返回一个html页面,并且在未来,我们还会了解到这个方法的更高级用处,就是传递上下文模版变量
修改app下的视图方法,返回这个页面,页面路径不需要绝对路径,使用template/下的相对路径即可
# app.views.py
from django.shortcuts import render
def index(request):
return render(request, 'index.html')
模板变量渲染
格式为
{{ var }}
例如:
hi
真不错
今天这个天气是{{ weather }}
模板语句
{% for%} 和{% if%}
1.
{% for var in sequence %}
{{ var }}
{% endfor %}
2.
{% if test_list %}
列表不为空
{% elif test_dict %}
列表为空,字典不为空
{% else %}
列表字典均为空
{% endif %}
生成迁移文件
创建数据库迁移文件
python manage.py makemigrations
执行迁移
根据数据库迁移文件生成对应 SQL 语句并执行
python manage.py migrate
注意点
- url放路由
- index前端
- views存放数据
- static静态数据
- setting底部放置静态资源url
- setting内数据库配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',# 使用mysql数据库
'HOST':"localhost",# 主机
'PORT':3306,# 端口
'user':'root',# 用户名
'PASSWORD':'123' ,# 密码
'NAME':'game' # 数据库
}
}
- 注册子应用
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', #注册子应用
]
- 配置url
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]
admin控制台
创建超级用户
python manage.py createsuperuser
mvt三重联动
views内代码
def MyView(request):
# 通过game模型类取出数据库中数据(ORM *** 作),去除左右角色信息
game_date = game.objects.all()
content = { # 传递给页面的数据
'games':game_date,
}
# reder返回一个模板页面
return render(request,'index2.html',content)
<注意>
这里使用**all**方法,代表获取某表中的所有数据
列表循环输出
Title
展示数据库中的角色信息
编号
角色名
攻击力
等级
{% for game in games %}
{{ game.id }}
{{ game.name }}
{{ game.atk }}
{{ game.level }}
{% endfor %}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)