Django初始

Django初始,第1张

Django框架介绍 状态码
**200**客户端的请求服务端正常完成
**301**客户端请求的资源已被永久移动到新的 URL
**302**客户顿请求的资源被临时移动,客户端继续使用原有 URL;常用于三方登录之后的跳转
**400**客户端的请求语法错误,或无法解析请求
**401**请求需要经过身份验证
**402**保留状态码,为以后使用做准备的呢
**403**服务端直接拒绝客户端的请求
**404**客户端请求的资源找不到
**502**服务端内部错误,服务端错误的网关
安装django
win+r 命令窗口输入: pip install django==2.2.2 
pip list
创建项目  ---桌面创建文件夹--文件夹CMD 命令行输入:
django-admin startproject project1
启动项目  ---在python小黑框
python manage.py runserver 
搜索命令
python manage.py --help
创建子应用  ---子应用的意义:应用是一个专门做某件事的网络应用程序,比如博客系统中的用户功能部分,一个考试系统中管理试卷的部分。
python manage.py startapp myapp 
子应用视图逻辑:
在views.py中我们通过编写函数的形式,接收用户请求的request并返回一个response,这个response通过HttpResponse方法进行返回,这个方法很简单,返回的就是一个html字符串

创建表
生成迁移
python manage.py makemigrations
执行迁移
python manage.py migrate
模版配置
项目内的settings.py文件,找到TEMPLATES选项修改其中的DIRS属性,在这里添加我们的html文件夹位置
'DIRS': [os.path.join(BASE_DIR,"templates")], 
#内容内的templates为新建的文件夹名称 此文件夹用于存放html文件
创建模版:
在templates内创建html文件
视图渲染:
需要在创建的子应用内的views.py实现页面的渲染
from django.shortcuts import render
def index(request):
    return render(request, 'index.html')
创建模版
在templates内创建html文件
视图渲染
需要在创建的子应用内的views.py实现页面的渲染
from django.shortcuts import render
def index(request):
    return render(request, 'index.html')
模版变量渲染

render可以用来返回一个模板页面,并将一个字典组合成的模板变量传递到模板页面上,完成页面的渲染

# app.views.py
from django.shortcuts import render
def index(request):
	#content是存储数据的变量名
    content = {'weather': '晴天'}
    #放在render用于讲数据传递给html页面可通过{{}}实现渲染
    return render(request, 'index.html', content)
    
方便一些的写法还可以直接用locals方法,将当前函数作用域下的变量及值组合为字典
	weather = '晴天'
	return render(request,'index.html',locals())
模版语句循环、分支 for 标签

模板中的标签{% for %}与Python中的for循环类似,要记得有闭合模板标签{{ endfor }}

模板语言中,不会出现索引超出范围的IndexError或者Key值不存在的KeyError,取不出任何东西则只是一个空

{% for var in sequence %}
    {{ var }}
{% endfor %}

数据也可以以键值对的形式进行传递 
取出方式:
{% for key,value in game.items %}
            {{ key }}:{{ value }}
{% endfor %}
if 标签

在模版中,可以通过{% if %}标签语法来进行模板变量的值判断;

{% if test_list %}
    列表不为空
{% elif test_dict %}
    列表为空,字典不为空
{% else %}
    列表字典均为空
{% endif %}
静态资源路径配置

​ 在settings中配置静态文件目录路径,添加如下内容

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)
# STATICFILES_DIRS 该配置项用来告诉 django 在查找静态资源时,应该访问哪个目录
可以在html页面插入图片

配置数据库相关内容

settings

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 使用mysql数据库
        'HOST':'localhost', # 主机
        'PORT':3306,    # 端口
        'USER':'root',   # 用户名
        'PASSWORD':'password',  # 数据库密码
        'NAME':'game', # 数据库
    }
}
ORM映射 模型类编写

需要写在子应用(myapp)中的models.py文件中

from django.db import models
# Create your models here.
# 模型层 会自动生成 id字段
class Game(models.Model):
    # CharField 字符串 max_length 最大长度 verbose_name  后台管理的字段名
    name = models.CharField(max_length=20,verbose_name="角色名")
    # IntegerField  整型
    atk = models.IntegerField(verbose_name="攻击力")
    level = models.IntegerField(verbose_name="等级")

当某个子应用APP涉及到了数据库的使用时,要记得在settings文件中进行配置

INSTALLED_APPS=["子应用名"] #注册子应用
安装mysql
import pymysql
pymysql.install_as_MySQLdb()
生成迁移文件
python manage.py makemigrations # 创建数据库迁移文件
执行迁移
python manage.py migrate # 根据数据库迁移文件生成对应 SQL 语句并执行
错误信息与解决方案
 File "C:\Users150\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\backends\mysql\operations.py", line 146, in
 last_executed_query
    query = query.decode(errors='replace')
AttributeError: 'str' object has no attribute 'decode'

找到路径内的decode 修改为encode

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

原文地址: https://outofmemory.cn/langs/723389.html

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

发表评论

登录后才能评论

评论列表(0条)

保存