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 ...
随机推荐
- AI 音辨世界:艺术小白的我,靠这个AI模型,速识音乐流派选择音乐 ⛵
作者:韩信子@ShowMeAI 数据分析实战系列:https://www.showmeai.tech/tutorials/40 机器学习实战系列:https://www.showmeai.tech/t ...
- KingbaseES 自增列三种方式
KingbaseES中3种自增长类型sequence,serial,identity的区别: 对象 显示插入 显示插入后更新最大值 清空表后是否重置 是否跟事务一起回滚 多对象共享 支持重置 出现错误 ...
- Mysql_Order_By的坑
CREATE TABLE `tt_transfer_container_pick_config` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, ...
- HBase原理深入
HBase 读写数据流程 Hbase 读数据流程 首先从 zk 找到 meta 表的 region 位置,然后读取 meta 表中的数据,meta 表中存储了用户表的 region 信息 根据要查询的 ...
- Java String Pool--String s = new String("a") 到底创建了几个对象?
本篇重点(tips): 1. String Pool 是以Java 中 String 对象是不可变的这一特性为基础的 2. String Pool是Heap(堆)中的一块特殊空间(JDK 1.7 之前 ...
- 《网页设计基础——HTML常用标签》
网页设计基础--HTML常用标签 一.网页框架: 格式: <html> <head> <title>网页标题</title> <sty ...
- 面试突击84:Spring 有几种事务隔离级别?
Spring 中的事务隔离级别和数据库中的事务隔离级别稍有不同,以 MySQL 为例,MySQL 的 InnoDB 引擎中的事务隔离级别有 4 种,而 Spring 中却包含了 5 种事务隔离级别. ...
- 如何修改 Kubernetes 节点 IP 地址
转载自:https://www.qikqiak.com/post/how-to-change-k8s-node-ip/ 昨天网络环境出了点问题,本地的虚拟机搭建的 Kubernetes 环境没有固定 ...
- Kibana可视化数据(Visualize)详解
可视化 (Visualize) 功能可以为您的 Elasticsearch 数据创建可视化控件.然后,您就可以创建仪表板将这些可视化控件整合到一起展示. Kibana 可视化控件基于 Elastics ...
- k8s中安装rabbitmq集群
官方文档地址:https://www.rabbitmq.com/kubernetes/operator/quickstart-operator.html 要求 1.k8s版本要1.18及其以上 2.能 ...