django

一.django的命令

1. django-admin startproject projectname;创建一个项目
2. django-admin startapp appname 创建一个应用(应用一定要再项目的根目录下)
3. python manage.py migrate 创建应用里model.py中的对象对用的表
4. python manage.py makemigrations appname 检查model.py中的修改,并做数据迁移
5. python manage.py sqlmigrate 迁移数据,会返回对应的sql语句
6. python manage.py check 检查项目中存在的问题
7. python manage.py createsuperuser 创建一个超级管理员用户
8. python manage.py runserver 启动服务

二.配置说明

1. INSTALLED_APPS 列表:向其中添加你的app,用于激活应用模板,名称再应用的app.py文件中
2. DATABASES 字典:用于设置应用的数据库,(注意字段要大写)
	ENGINE(常用):
	'django.db.backends.sqlite3',
	'django.db.backends.postgresql',
	'django.db.backends.mysql',
	'django.db.backends.oracle',
	'django.db.backends.sqlite3'
	NAME:数据库名称,如果是sqllite则是文件路径
	USER: 用户名,
    PASSWORD: 密码,
    HOST: ip地址,
    PORT: 端口号,
3. TIME_ZONE :用于设置时域

三.创建数据库模板文件

  • 在创建的app里models.py中创建自己对象类(官方文档例子)
    在这里插入图片描述

  • 在setting.py文件中添加对应的配置(https://blog.csdn.net/weixin_42134789/article/details/108373452
    htmls是应用名,apps是apps.py(相当于应用的配置文件),HtmlsConfig是类名,
    在这里插入图片描述

  • 执行下列命令创建、迁移数据表

py manage.py makemigrations
py manage.py migrate
  • 对数据表进行操作
# 获取所有表数据
Reporter.objects.all()

# 创建一条数据
r = Reporter(full_name='John Smith')
r.save()

# 根据id查询数据
r = Reporter.objects.get(id=1)

# 删除一条数据(更据对象的delete方法删除)
r.delete()

# 条件查询数据
Article.objects.filter(reporter__full_name__startswith='John')

四.admin.py

是利用django自带的后台来管理数据库中的表;

# 在对应得应用根目录下创建admin.py
# 添加格式
from django.contrib import admin
from .models import *
admin.site.register(Users)  # 参数是模板类名

创建登录后台初始用户

  1. python manage.py createsuperuser
    在这里插入图片描述

五.使用render返回HTML模板(静态文件也是同理,目录名称为static)

在这里插入图片描述

  1. 在创建的app中新建一个templates目录

  2. 在setting配置文件中将APP_DIR设置为True

  3. 在INSTALLA_APPS中添加创的app

  4. 在templates目录中再创建一个app同名目录

    为什么多创建一个目录?为了避免和其他应用的模板文件重名,导致加载失败
    
  5. 创建对应的HTML模板

  6. 创建静态文件
    在这里插入图片描述

六.配置应用的urls

  • 在项目的urls.py中注册app的urls,路由查询方式是从上到下依次匹配
    在这里插入图片描述

  • 在应用的urls.py中添加视图的路由
    在这里插入图片描述

  • 路由传递参数
    在这里插入图片描述
    在这里插入图片描述

  • 注册自定义的路径转换器
    转换器是一个类,需要有一个类属性,和实现两个方法

    • 字符串形式的 regex 类属性。
    • to_python(self, value) 方法,用来处理匹配的字符串转换为传递到函数的类型。如果没有转换为给定的值,它应该会引发 ValueError 。ValueError 说明没有匹配成功,因此除非另一个 URL 模式匹配成功,否则会向用户发送404响应。
    • 一个 to_url(self, value) 方法,它将处理 Python 类型转换为字符串以用于 URL 中。如果不能转换给定的值,它应该引发 ValueError。ValueError 被解释为无匹配项,因此 reverse() 将引发 NoReverseMatch,除非有其他 URL 模式匹配。
    • 在 URLconf 中使用 register_converter() 来注册自定义的转换器类
class TestConverter:
    # 匹配四个数字
	regex = '[0-9]{4}'

	def to_python(self, value):
		return int(value)
	
	def to_url(self, value):
		return '%04d' % value
from django.urls import path, register_converter

from . import converters, views

register_converter(converters.TestConverter, 'yyyy')

urlpatterns = [
    path('articles/2003/', views.special_case_2003),
    path('articles/<yyyy:year>/', views.year_archive),
    ...
]
  • 使用正则表达式url中的数据
    在 Python 正则表达式中,命名正则表达式组的语法是 (?Ppattern) ,其中 name 是组名,pattern 是要匹配的模式
from django.urls import path, re_path

from . import views

urlpatterns = [
    path('articles/2003/', views.special_case_2003),
    re_path(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
    re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive),
    re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<slug>[\w-]+)/$', views.article_detail),
]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>