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 ...
随机推荐
- 【Java】学习路径54-使用UDP协议开发发送、接收端
UDP协议,简单的说就是,发信息. 不管对方有没有收到. 发送端: import java.net.*; public class UDP_Send { public static void main ...
- C# winfrom ListView控件实现自由设置每一行字体及背景色等
背景:公司经常会需要将日志信息,输出到一个对话框中显示出来.之前一直采用的listbox控件,操作简单,使用方便,但是遗憾的是,不能自由控制每一行的状态. 于是想了如下几个方案: (1)重绘listb ...
- 【lwip】005-lwip内核框架剖析
目录 前言 5.1 lwip初始化 5.2 内核超时 5.2.1 内核超时机制 5.2.2 周期定时机制 5.2.3 内核超时链表数据结构 5.2.4 内核超时初始化 5.2.6 超时的溢出处理 5. ...
- 第九十九篇:JS闭包
好家伙,总是要来的,去面对那些晦涩难懂的原理,它就在那里,等着我去搞定它 首先我要去补充一些最基本的概念, 1.什么是内存? 新华字典永远的神, 但这个解释显然不够 去看看百度百科: 内存: CP ...
- FusionCopmpute之CNA,VRM虚拟机安装
CNA和VRM安装步骤一样,需要修改的只有IP 按步骤创建 修改自己虚拟机想要存放的位置 需要把自己网络同样配置为仅主机(提前配好) 自己也可以修改至200G 虚拟机只是用多少取多少 CNA可以设置为 ...
- RTSP播放器或RTMP播放器常用的Evnet事件回调设计
很多开发者在开发RTSP或RTMP播放器的时候,不晓得哪些event回调事件是有意义的,针对此,我们以大牛直播SDK(github)的Android平台RTSP/RTMP直播播放端为例,简单介绍下常用 ...
- KingbaseES 命令行安装数据库
关键字: KingbaseES.Linux.x86-64 一.安装前环境准备 1.硬件环境支持 ` 金仓数据库管理系统KingbaseES支持X86.X86_64,同时支持龙芯.飞腾等国产CPU硬 ...
- Python图像处理丨带你认识图像量化处理及局部马赛克特效
摘要:本文主要讲述如何进行图像量化处理和采样处理及局部马赛克特效. 本文分享自华为云社区<[Python图像处理] 二十.图像量化处理和采样处理及局部马赛克特效>,作者: eastmoun ...
- Windows 10 20H1 2004新功能
Windows 10的年度更新版本20H1即将问世.目前可以从insider preview渠道中获得.这个版本中看上去对搜索功能做了不小的改进.包括搜索的磁盘占用率以及搜索的一些展示方式. 其它的一 ...
- js之页面列表加载常用方法总结
导语:最近由于一些事情需要处理,所以没来得及写技术总结了.今天终于可以坐下来好好的梳理一下脉络,说一下那个在日常前端开发过程中,常用到的页面列表加载的方法总结.这里介绍三种方法,分别是分页加载.按钮加 ...