Python学习之十八_django的学习(二)
Python学习之十八_django的学习(二)
前言
前面学习了基本的django的使用.
这里想着稍微深入一点学习templates
以及进行级联的路由展示.
修改配置文件
要想使用 templates下面的文件.
需要修改一下项目级别的 settings.py
主要点如下:
TEMPLATES 配置节下面 处理 DIRS的配置节
可以修改为:
'DIRS': [os.path.join(BASE_DIR,'templates')],
使用当前项目基础路径和templates的组合进行表示.
部分app的处理
给单独的app增加 urls 文件(我理解也可以是其他名字)
比如我这边先创建一个空的app
python manager.py startapp sudbcompare
然后在sudbcompare 下面新增一个 python文件
sudbcompareurls.py
增加内容为:
from sudbcompare import views
from django.urls import path
urlpatterns = [
path('login/',views.test)
]
# 注意此时 test方法还没有写.
在 sudbcompare的 views下面增加方法
from django.shortcuts import render
def test(request) :
return render(request,"sudbcompare\zhaobsh.html")
主应用路由处理
在主应用的urls.py 里面增加代码
from sudbcompare import sudbcompareurls
from django.urls import path,include
urlpatterns = [
path('project/',include(sudbcompareurls))
]
服务启动验证
python manager.py runserver
访问页面确认:
http://127.0.0.1:8000/project/zhaobsh/
django使用mysql数据库
修改 项目及的 settings.py文件
将database 部分进行修改
注意 之前的databse 可以使用 " crtl + / " 的方式批量注释掉
注意 需要安装组件: pip install mysqlclient
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '数据库名',
'USER': '用户名',
'PASSWORD': '密码',
'HOST': '数据库服务器ip,本地可以使用localhost',
'PORT': '端口,默认为3306',
'CHARSET': 'UTF8',
}
}
注意目标数据库一定要存在
添加上数据库和用户名 附上权限.
注意修改好了之后需要进行一下迁移
python manage.py makemigrations
# 第一步是整理需要的内容
python manage.py migrate
# 第二步会在mysql数据库上面创建空表
django 设置用户密码
python manage.py createsuperuser
可以创建用户和密码
密码不显示. 可以在数据库中进行查看
创建完用户密码之后就可以在这个界面下登录了:
http://127.0.0.1:8000/admin/
Python学习之十八_django的学习(二)的更多相关文章
- python 学习笔记十八 django深入学习三 分页,自定义标签,权限机制
django Pagination(分页) django 自带的分页功能非常强大,我们来看一个简单的练习示例: #导入Paginator>>> from django.core.p ...
- 智能车学习(十八)——电机学习
一.C车电机选择 1.摘要: 因为C车模在四轮车的优势是有两个电机,可以进行主动差速,劣势是电机太弱了....所以如何选择电机,就是个钱的问题了,电机多一点,就比较好选,但是C车电机跑多了就 ...
- python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置
python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置Download JetBrains Python IDE :: PyCharmhttp://www. ...
- 学习笔记:CentOS7学习之十八:Linux系统启动原理及故障排除
目录 学习笔记:CentOS7学习之十八:Linux系统启动原理及故障排除 18.1 centos6系统启动过程及相关配置文件 18.1.1 centos6系统启动过程 18.1.2 centos6启 ...
- (转载)Android项目实战(二十八):Zxing二维码实现及优化
Android项目实战(二十八):Zxing二维码实现及优化 前言: 多年之前接触过zxing实现二维码,没想到今日项目中再此使用竟然使用的还是zxing,百度之,竟是如此牛的玩意. 当然,项目中 ...
- (C/C++学习笔记) 十八. 继承和多态
十八. 继承和多态 ● 继承的概念 继承(inheritance): 以旧类为基础创建新类, 新类包含了旧类的数据成员和成员函数(除了构造函数和析构函数), 并且可以派生类中定义新成员. 形式: cl ...
- python之路十八
1.JS 正则 test - 判断字符串是否符合规定的正则 rep = /\d+/; rep.test("asdfoiklfasdf89asdfasdf ...
- Python学习日记(十八) 序列化模块
什么是序列? 就是每一个元素被有序的排成一列 什么是序列化? 就是将原本的列表.字典等内容转化成字符串的过程 什么时候会用到序列化? 数据存储(把数据放在文件.数据库),网络传输等 序列化的目的 1. ...
- Python学习第十八篇——低耦合函数设计思想
import json 2 def greet_user(filename): 3 try: 4 with open(filename) as f_obj: 5 username = json.loa ...
- Python学习札记(十八) 高级特性4 生成器
参考:生成器 Note 1.通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的,且容易造成空间浪费.所以,如果列表元素可以按照某种算法推算出来,那我们可以在循环的过程中 ...
随机推荐
- 解决 git中用vim编写文件时,无法写进文字字母以及光标无法移到最右边的问题
解决方法:可以切换到英文输入法,然后按'a' 或者 'i' 或者 'o' 或者's' 等.s好像会删掉一个字母.o会使光标移到文末.
- Java面试必考:什么是字节码?采用字节码的好处?
Java面试必考:什么是字节码?采用字节码的好处? 于哥你好,最近在java面试中被问答到什么是字节码?采用字节码的好处是什么?瞬间懵了,如果你连这个都不知道,我保证你面试GG! 首先说下Java的优 ...
- 28、Flutter Key详解
在Flutter中,Key是不能重复使用的,所以Key一般用来做唯一标识.组件在更新的时候,其状态的保 存主要是通过判断组件的类型或者key值是否一致.因此,当各组件的类型不同的时候,类型已经足够 用 ...
- 华为云弹性云服务器ECS搭建FTP服务实践
摘要:在使用华为弹性云服务器ECS搭建FTP服务的时候,经常会遇到搭建完成后无法访问的问题.本篇通过演示windows IIS搭建FTP方法,讲解ftp主动模式.被动模式原理来说明无法访问的原因及解决 ...
- DTSE Tech Talk 第18期丨统计信息大揭秘,数仓SQL执行优化之密钥
摘要:华为云EI DTSE技术布道师王跃,针对统计信息对于查询优化器的重要性,GaussDB(DWS)最新版本的analyze当前能力,与开发者和伙伴朋友们展开交流互动,帮助开发者快速上手使用统计信息 ...
- 独家下载!突破开源Redis,华为云十年自研内核修炼之路《企业级Redis技术与应用解读》重磅发布
摘要:互联网业务神器最新揭秘:GaussDB(for Redis)如何以自研架构,突破开源版本限制,带来企业级稳定可靠?通过入门篇.性能篇.测评篇.应用篇四个章节,聚焦问题解决.场景应用和开发实战,分 ...
- #2045:不容易系列之三LELE的RPG难题(dp递推)
Problem Description 人称"AC女之杀手"的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多"Cole"(LELE的粉丝,即"可乐 ...
- Codeforces Round #689 (Div. 2, based on Zed Code Competition) 个人题解
1461A. String Generation void solve() { int n, k; cin >> n >> k; for (int i = 1; i <= ...
- Android 3分钟带你入门开发测试
作者:Zhu Yifei 作为一名合格的开发人员,基本的开发测试能力必不可少,开发测试分单元测试和UI测试,通过开发测试可以减少开发人员自测时间,提升开发质量.本篇文章可以帮助初级开发人员快速了解开发 ...
- map三层循环遍历,操作数据
let tempArr = this.oldCityList.map(item => { return { value: item.code, text: item.name, type: it ...