Django系列---开发一
参考
杜赛: https://www.dusaiphoto.com/article/2/
官方文档: https://docs.djangoproject.com/en/3.2/
开发环境
# 基本
python 3.7
pip install django==2.2.3
# 扩展
pip install django-crispy-forms # 渲染表单使用
pip install mysqlclient==1.4.6 # mysql 数据库使用
一、 项目创建基本语句
# 创建名为 my_blog的django项目
django-admin startproject my_blog
# 运行django服务器
python manage.py runserver 127.0.0.1:8000
# 创建app,名为article
python manage.py startapp article
# 之后需要在settings中注册此app
# 创建管理员账号 Superuser
python manage.py createsuperuser
打开chrome浏览器,输入http://127.0.0.1:8000/ ,即可看到运行的django
二、 Model层相关
在有了网站之后,第一个需要学习的是 数据层的使用,需要在数据库中建立数据表,具体建立方法参考官方文档
# 两条数据库更新的基本指令
python manage.py makemigrations
python manage.py migrate
三、 View层相关
需要在每个app中新建 urls.py与forms.py,用于路由管理与表单构建。
有了用户数据之后,网站需要先登录,此时涉及到url配置,此配置在urls.py中。
在与settings.py同级的urls.py中配置到各个app的路由,在各个app中配置具体功能的路由。
主urls
from django.contrib import admin # admin的网址需要
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls), # 使用admin自带的所有网址
path('phone/', include("phone.urls", namespace='phone')), # phone是app的名字
path('account_django/', include("account_django.urls", namespace='account_django')),
]
二级urls
以account_django为例
from django.urls import path, reverse_lazy
from . import views
from django.contrib.auth import views as auth_views
app_name = 'account_django'
urlpatterns = [
path('login/', views.user_login, name='login'),
path('logout/', views.user_logout, name='logout'),
path('home/', views.home, name='home'),
path('about_system/', views.about_system, name='about_system'),
path('users_table/', views.UsersTable.as_view(), name='users_table'),
path('ajax_delete_user', views.ajax_delete_user, name='ajax_delete_user'),
path('user_register/', views.user_register, name='user_register'),
path('user_update/', views.user_update, name='user_update'),
path('list_dep', views.list_dep, name='list_dep'),
path('list_test_modules', views.list_test_modules, name='list_test_modules'),
path('password_change/', auth_views.PasswordChangeView.as_view(
success_url=reverse_lazy('account_django:password_change_done')
), name='password_change'),
path('password_change_done/', auth_views.PasswordChangeDoneView.as_view(), name='password_change_done'),
]
表单
在用户登录时,输入用户名与密码的框即为表单。
例,登录的form类
# 引入表单类
from django import forms
class LoginForm(forms.Form):
username = forms.CharField(required=True, label="邮箱前缀", widget=forms.TextInput(attrs={'class': 'form-control'}))
password = forms.CharField(required=True, label="密码", widget=forms.PasswordInput(attrs={'class': 'form-control'}))
四、 内置后台管理工具
# 生成指令
python manage.py createsuperuser
# 访问
http://127.0.0.1:8000/admin/
五、 seetings设置
# 1、自定义模块 与 静态文件 位置
TEMPLATES = [
{
... ...
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], # 此是需要手动修改的,其余的是默认生成的
'APP_DIRS': True,
... ...
},
]
# 2、设置数据库为使用的mysql
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'library',
'USER': 'root',
'PASSWORD': 'password',
'HOST': '10.18.99.166',
'PORT': '3306',
}
}
# 3、设置语言与时区为 中文
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
# 4、设置静态文件放置处
STATIC_URL = '/static/' # 此为默认生成的
STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),) # 静态文件目录,为包含一个元素的元组; 此句放于 STATIC_URL='/static' 语句后
# 5、若是重写的User继承了django自带的User,则添加下句
AUTH_USER_MODEL = 'account.User' # 让django自带的User类不起作用
Django系列---开发一的更多相关文章
- Django系列---开发三 前后端分离
数据交互接口规范REST,全称 Representational State Transfer,意为"表现层状态转化". django的第三方拓展--django-rest-fra ...
- Django系列---开发二
django.contrib.auth Django的用户验证框架,可以快速实现用户信息验证.登录.登出等用户操作 from django.contrib.auth import authentica ...
- Django 系列博客(十四)
Django 系列博客(十四) 前言 本篇博客介绍在 html 中使用 ajax 与后台进行数据交互. 什么是 ajax ajax(Asynchronous Javascript And XML)翻译 ...
- Django 系列博客(十二)
Django 系列博客(十二) 前言 本篇博客继续介绍 Django 中的查询,分别为聚合查询和分组查询,以及 F 和 Q 查询. 聚合查询 语法:aggregate(*args, **kwargs) ...
- Django 系列博客(八)
Django 系列博客(八) 前言 本篇博客介绍 Django 中的模板层,模板都是Django 使用相关函数渲染后传输给前端在显式的,为了想要渲染出我们想要的数据,需要学习模板语法,相关过滤器.标签 ...
- Django 系列博客(六)
Django 系列博客(六) 前言 本篇博客介绍 Django 中的路由控制部分,一个网络请求首先到达的就是路由这部分,经过路由与视图层的映射关系再执行相应的代码逻辑并将结果返回给客户端. Djang ...
- Django 系列博客(一)
Django 系列博客(一) 前言 学习了 python 这么久,终于到了Django 框架.这可以说是 python 名气最大的web 框架了,那么从今天开始会开始从 Django框架的安装到使用一 ...
- Web程序员开发App系列 - 开发我的第一个App,源码下载
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- Python之路【第二十三篇】:Django 初探--Django的开发服务器及创建数据库(笔记)
Django 初探--Django的开发服务器及创建数据库(笔记) 1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django ...
随机推荐
- 离线安装docker
一.安装步骤 1.下载Docker二进制文件(离线安装包) 下载地址:https://download.docker.com/linux/static/stable/x86_64/ 注:本文使用 do ...
- Jenkins+SpringCloud(多模块)+Vue项目详细配置
一.Jenkins安装及所需插件安装 安装过程略. 我这用到工具包括JDK.Git.Maven.NodeJS:可以选择自行在服务器安装,也可以通过Jenkins自动安装,位置在系统管理 >全局工 ...
- Tablesaw——Java统计、机器学习库
资源 java二维数组处理可可视化库 https://github.com/jtablesaw/tablesaw plotly JS库的Java封装 https://github.com/jtable ...
- 第二十二篇:有关插槽solt的使用
1.什么是插槽? 插槽就是子组件中的提供给父组件使用的一个占位符,用<slot></slot> 表示, 父组件可以在这个占位符中填充任何模板代码,如 HTML.组件等,填充的内 ...
- kingbaseES V8R6集群备份恢复案例之---备库作为repo主机执行物理备份
案例说明: 此案例是在KingbaseES V8R6集群环境下,当主库磁盘空间不足时,执行sys_rman备份,将集群的备库节点作为repo主机,执行备份,并将备份存储在备库的磁盘空间. 集群架构 ...
- SpringBoot使用自定义注解+AOP+Redis实现接口限流
为什么要限流 系统在设计的时候,我们会有一个系统的预估容量,长时间超过系统能承受的TPS/QPS阈值,系统有可能会被压垮,最终导致整个服务不可用.为了避免这种情况,我们就需要对接口请求进行限流. 所以 ...
- Gitea 1.17.1 正式发布 | 08 累积更新
Gitea 1.17.1 已正式发布.在这个小的版本更新中我们合并了 35 个 PR,没有包含功能性的更改,但我们强烈建议用户升级到此版本以获得重要的修复补丁. 致谢:感谢报告问题的安全研究人员,同时 ...
- VMware Component Manager服务无法启动
近日,给一台Windows 2016上的vCenter打补丁,系统重启后,发现vmware的很多服务无法启动了.这是一台老版本的vcenter,虽然已经2021年了,但是它还管理着一些很老的ESX,比 ...
- 高性能 Java 计算服务的性能调优实战
作者:vivo 互联网服务器团队- Chen Dongxing.Li Haoxuan.Chen Jinxia 随着业务的日渐复杂,性能优化俨然成为了每一位技术人的必修课.性能优化从何着手?如何从问题表 ...
- docker垃圾处理
1 查找docker文件夹 find / -name docker 2 列举文件夹大小 du -h --time --max-depth=1 . df -h df -TH 3 Docker占用磁盘空间 ...