Linux环境下django初入
python -m pip install --upgrade pip
终端中
一. 创建项目:
1.django-admin startproject mysite(第一种比较好)
2.django-admin startproject mysite .
二. 启动该项目的django
python manage.py migrate
python manage.py runserver
用http://127.0.0.1:8000 | http://localhost:8000访问
三. 创建该网站的第一个功能:
python manage.py startapp blog
或者
django-admin startapp blog
在mysite/settings中的Installed_apps = ['增加功能名',]
在blog/models.py中添加数据模型
根据数据模型生成数据库表,在blog/migration中生成BlogArticles模型
:Python manage.py makemigrations
在数据表的前提下,创建数据库:python3.5 manage.py migrate
四.创建SQLite数据库:
sudo apt-get install sqlite3
安装图形界面
sudo apt-get install sqlitebrowser
五. 发布博客文章:
先创建超级用户:python manage.py createsuperuser
用户名:admin
密码:zwsPassword123
运行Django:python manage.py runserver
登陆Django:http://localhost:8000/admin
六. 显示博客信息:
在创建数据模型后,Django会自动的创建API,用来连接数据库
在交互式下,进行数据库操作:python manage.py shell
from django.comtrib.auth.models import User
from blog.models import BlogArticles
做到上面这些,还不能发表文章,必须在这个功能的admin.py中进行模块注册
from django.contrib import admin
from .models import BlogArticles
admin.site.register(BlogArticels)
现在可以愉快的写文章了
你会发现文章在网页上没有显示作者,写文章的时间
在admin.py中接着添加东西
class BlogArticlesAdmin(admin.ModelAdmin):
list_display = ("title", "author","publish")
list_filter = ("publish", "author")
search_fields = ("title", "body")
raw_id_fields = ("author",)
date_hierarchy = "publish"
ordering = ["publish", "author"]
admin.site.register(BlogArticles, BlogArticlesAdmin)
七. 我们的目的是为了发表博客给被人看,所以必须有一个和用户的交互页面
首先在blog的功能中的view.py中添加要展示的数据
然后在新建一个视图模板文件夹templates>base.html blog >titles.html
视图和模板编写完后,还要进行url的配置,以便他人访问
为了防止访问不存在的网页:
from django.shortcuts import render, get_object_or_404
from .models import BlogArticles
def blog_article(request, article_id):
article = get_object_or_404(BlogArticles, id = article_id)
pub = article.publish
return render(request, "blog/content.html", {"article":article, "publish": pub})
text:
1.检查文件的所在地: whereis django-admin.py
2.设置./mysite/setting 中设置项目为中文
LANGUAGE_CODE = 'zh-Hans'
3.设置项目时区:TIME_ZONE = 'Asia/Shanghai'
4.在Django中,开发模式:不需要配置服务器,像Apache or Nginx
但在生产模式中,因为 Django内部就自带了Web服务器功能,否则就需要进行部分配置
5. 在开发模式中,Django会自动检测到修改的代码并重新加载,不需要每一次修改代码后重新启动Web服务器,只有增加文件时,才要重启Django服务器
6.在ubuntu的终端中打开文档:gedit 文档名
7.__init__() missing 1 required positional argument: 'on_delete':
在author中添加on_delete=models.CASCADE
8.python manage.py sqlmigrate blog 0001:查看文件的sql形式
9.django.db.utils.OperationalError: database is locked:
10.模型ORM:(Object-Relational Mapping)
在关系型数据库和业务实体对象之间进行映射,不用和复杂的SQL语句打交道
可移植性:更换数据库类型,不需要对ORM进行修改
安全性好
查询与法简单
ORM的表现形式:编写数据模型类,通常写在每个应用的models.py
每个数据模型类都是django.db.models.Model的子类
应用名称规范:应用名_(model_name)
数据模型类 --> 数据库表
11. MVC(Model-View-Controller)
M:数据储存和读取部分, 由Django的models.py的数据模型处理
V:确定要显示哪些内容,及如何显示 由视图和模板显示(view.py Template)
C:根据客户端的请求映射到相应的视图, 由Django的框架的URLconf设置,调用相应的函数
MTV:View相当于MVC中的C的控制器
12. vim使用:
sudo vim /etc/vim/vimrc
set nu #显示行号
set tabstop=4 #tab缩进为4
ctrl+s 停止输入,可以ctrl+q 恢复输入
dd 删除一行
Linux环境下django初入的更多相关文章
- Linux环境下Django App部署到XAMPP上
Django App部署到XAMPP上 准备工作 首先一定要保证自己的代码在本地可以运行! 同时在服务器上把需要的库,什么数据库之类的都装好! 源码安装mod_wsgi 从mod_wsgi的gitgu ...
- 多线程编程之Linux环境下的多线程(二)
上一篇文章中主要讲解了Linux环境下多线程的基本概念和特性,本文将说明Linux环境下多线程的同步方式. 在<UNIX环境高级编程>第二版的“第11章 线程”中,提到了类UNIX系统中的 ...
- 多线程编程之Linux环境下的多线程(一)
一.Linux环境下的线程 相对于其他操作系统,Linux系统内核只提供了轻量级进程的支持,并未实现线程模型.Linux是一种“多进程单线程”的操作系统,Linux本身只有进程的概念,而其所谓的“线程 ...
- [原]对Linux环境下任务调度一点认识
我一直以来有一个误解,那就是在终端运行某个程序时,按下Ctrl + D时我误以为就是杀死了这个进程,今天才知道原来不是.比如我利用libevent在Linux环境下写了一个网络监听程序,当启动程序之后 ...
- 【转载】linux环境下tcpdump源代码分析
linux环境下tcpdump源代码分析 原文时间 2013-10-11 13:13:02 CSDN博客 原文链接 http://blog.csdn.net/han_dawei/article/d ...
- linux环境下tcpdump源代码分析
Linux 环境下tcpdump 源代码分析 韩大卫@吉林师范大学 tcpdump.c 是tcpdump 工具的main.c, 本文旨对tcpdump的框架有简单了解,只展示linux平台使用的一部分 ...
- Linux环境下使用JFS文件系统
Linux环境下使用JFS文件系统 JFS是IBM公司为linux系统开发的一个日志文件系统.从IBM的实力及它对Linux的态度来看,JFS应该是未来日志文件系统中最具实力的一个文件系统. JFS提 ...
- mosquitto在Linux环境下的部署/安装/使用/测试
mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. ...
- 嵌入式LINUX环境下视频采集知识
V4L2是Linux环境下开发视频采集设备驱动程序的一套规范(API),它为驱动程序的编写提供统一的接口,并将所有的视频采集设备的驱动程序都纳入其的管理之中.V4L2不仅给驱动程序编写者带来极大的方便 ...
随机推荐
- Asp.Net Core AuthorizeAttribute 和AuthorizeFilter 跟进及源码解读
一.前言 IdentityServer4已经分享了一些应用实战的文章,从架构到授权中心的落地应用,也伴随着对IdentityServer4掌握了一些使用规则,但是很多原理性东西还是一知半解,故我这里持 ...
- 「每日五分钟,玩转JVM」:两种算法
前言 上篇文章,我们了解了GC 的相关概念,这篇文章我们通过两个算法来了解如何去确定堆中的对象实例哪些是我们需要去回收的垃圾对象. 引用计数算法 引用计数法的原理很简单,就是在对象中维护一个计数器,当 ...
- vue 组件通讯方式到底有多少种 ?
前置 做大小 vue 项目都离不开组件通讯, 自己也收藏了很多关于 vue 组件通讯的文章. 今天自己全部试了试, 并查了文档, 在这里总结一下并全部列出, 都是简单的例子. 如有错误欢迎指正. 温馨 ...
- MS15-034漏洞复现、HTTP.SYS远程代码执行漏洞
#每次命令都百度去找命令,直接弄到博客方便些: 漏洞描述: 在2015年4月安全补丁日,微软发布的众多安全更新中,修复了HTTP.sys中一处允许远程执行代码漏洞,编号为:CVE-2015-1635( ...
- DjangoORM操作之其他知识点
一.F与Q查询 F查询 F查询的应用场景主要是当你想要查询字段需要与数据库中的另外一个字段进行比较的时候,基于我们前面所学的知识点无法完成,那就需要用到F查询. F的导入 from django.db ...
- 插了带蠕虫的U盘后,文件不见了怎么快速恢复
朋友插了别人U盘,电脑中毒,找到我,在网上找了一些教程,好多都是用杀软的,懒的下,亲测本教程简单有效 首先,我们创建了一个reg文件(注册表文件),如下, 利用REG文件我们可以直接对注册表进行任何修 ...
- Spring02——Spring 中 Bean 的生命周期及其作用域
在前一篇文章中,我们已经介绍了 Spring IOC 的相关知识,今天将为个位介绍 Spring 中 Bean 的相关知识.关注我的公众号「Java面典」,每天 10:24 和你一起了解更多 Java ...
- K8S 资源收集和展示 top & DashBoard-UI
一.前言 在近期的 K8S 开发调试的过程中,总会想知道 Node 或者 Pod 的更多信息.但 $ kubectl top node $ kubectl top pod 中的 top 操作符,需要 ...
- 服务器上安装.NET Framework 3.5 sp1
操作系统是Windows Server 2008 R2 或 Windows Server 2012 或 Windows Server 2012 R2,可以直接进入“服务器管理器”添加“功能”.
- 总结:自动将函数对象添加到字典的bug
介绍 本文以ATM项目为背景,介绍一个比较实用的编程技巧,使用装饰器将项目中的指定函数添加到字典中. 利用字典通过key访问value的特点,实现用户输入编号,通过字典直接获取并调用编号对应的功能函数 ...