第一&第二单元 初识Django

第一&第二单元 初识Django,第1张

django命令 创建django
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
注意点
  1. url放路由
  2. index前端
  3. views存放数据
  4. static静态数据
  5. setting底部放置静态资源url
  6. setting内数据库配置
DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.mysql',# 使用mysql数据库
       'HOST':"localhost",# 主机
       'PORT':3306,# 端口
       'user':'root',# 用户名
       'PASSWORD':'123' ,# 密码
       'NAME':'game' # 数据库
   }
}
  1. 注册子应用
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',  #注册子应用
]
  1. 配置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 %}
        
    {% endfor %}
    
编号 角色名 攻击力 等级
{{ game.id }} {{ game.name }} {{ game.atk }} {{ game.level }}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/742979.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存