如何开启一个Django项目
一:新建的Django工程
新建了一个Django工程后,工程会自动创建有两个templates文件夹和unitled文件夹,再加上一个manage.py文件。

二:Django开发的一般流程
在工程建立完成后,现在依照完成一个基于mysql数据库的具体的页面来熟悉Django的基本开发流程。
2.1:静态配置文件的路径修改
setting.py中是工程的配置文件
其中静态文件的引用路径都会去这个地方来找

2.2:数据库的相关配置
告诉Django怎么连接数据库

要注意配置的key都是大写,ENGINE是你所用的数据库只需要更改mysql这个地方就可以修改使用的数据库了。
利用pymysql模块来调用数据库需要在工程的同级别的__init__.py文件中添加以下代码:告诉Django用pymysql这个模块代替Mysqldb去连接MySQL
import pymysql
pymysql.install_as_MySQLdb()
就用Django实现一个页面来说,目前在配置文件中只需更改上面的几项配置。
2.3:新建一个项目App,并配置
打开终端进入工程所在目录下,按照下面的例子来建立一个App
F:\mysite>python manage.py startapp login

一个App下会自动建立有上面的文件,同时建立了一个APP之后,需要告诉Django你所建立的APP,在setting中配置好
2.4:应用的业务逻辑
在views中处理业务的逻辑
def dashboard(request):
# if request.method == 'POST':
# info = request.POST.get('publisher_name')
# models.Publisher.objects.create(name = info)
ret = models.Publisher.objects.all()
return render(request,'dashboard.html',{"publisher_list":ret}) def add_publisher(request):
if request.method == 'POST':
info = request.POST.get('publisher_name')
models.Publisher.objects.create(name = info)
return redirect('/dashboard/')
return render(request,'add.html')
2.5:请求和业务逻辑的映射
在上网时,输入一个网址,就是由浏览器把对一个页面的请求发送给web服务端,web服务端根据请求的消息,找到和服务器中业务逻辑的对照关系,执行相应的代码,回复浏览器的请求。
在Django中,请求和业务逻辑的对应关系写在setting同级别的urls.py中.
from django.conf.urls import url
from django.contrib import admin
from app01 import views #从App中导入views urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^add_publisher/',views.add_publisher),
url(r'^dashboard/',views.dashboard),
]
#请求和业务逻辑映射
Django已经规定好具体的逻辑,遵循其规范把请求和业务逻辑填入即可.
三:加上数据库
数据库的配置在一开始就已经提到,在Django中按照以下关系把表和类对应起来
类<=====>表
类的实例化对象<=====>表的一条记录
属性<=====>字段
在每个项目App中都有一个models.py文件,就是用来和数据库的中的表建立映射的,把表映射成一个类,用操作类的方式操作表。
from django.db import models
# Create your models here.
class Publisher(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=16)
但是要想把表创建出来,仅仅只是定义一个类是不够的,还需要以下两步:
打开Teminal终端:
1. python3 manage.py makemigrations --> 将models.py的修改登记到小本本上
2. python3 manage.py migrate --> 将修改翻译成SQL语句,去数据库执行
将上述命令执行之后,由models中class定义的类映射的表就执行SQL语句在数据库中创建完成了。
最后是把HTML文件放在templates文件夹中,Django中已经配置好,会自动去该路径下查找HTML文件,打开文件读取,然后发送给浏览器客户端。
目前来说,有三种响应方式:
1:HttpResponse()#返回括号内的字符给浏览器
2:render(request,'xxx.html')#两个参数,request是固定写法,返回html文件给浏览器
3:redirect(‘url’)#把url告知浏览器,浏览器根据url重新发起请求。
命令行指定端口运行程序
python manage.py runserver 8080
四:总结
总的来说,初学者新建Django项目的步骤:
1: 创建项目(APP)和配置项目
2.:创建数据库(models中定义一个类)和配置数据库
3.:配置templates和静态文件相关
4.:注释掉 settings.py中 csrf那一行
如何开启一个Django项目的更多相关文章
- Python开发入门与实战2-第一个Django项目
2.第一个Django项目 上一章节我们完成了python,django和数据库等运行环境的安装,现在我们来创建第一个django project吧,迈出使用django开发应用的第一步. 2.1.创 ...
- 第一个Django项目及部署到Sina App Engine
Sina App Engine简称SAE,是个比较好的网站托管平台,目前说是全面免费,其实就是每个人分配很小的资源配额,在一定的使用范围内不用消耗云豆(SAE计费方式),对于个人学习和研究足够了,同类 ...
- 如何创建一个Django项目
Django 软件框架 软件框架是由其中的各个模块组成,每个模块负责特定的功能,模块与模块之间相互协作来完成软件开发. MVC简介 MVC框架的核心思想是:解耦,让不同的代码块之间降低耦合,增强代码的 ...
- 创建第一个Django项目
第一个Django项目 命令行下使用如下命令创建一个名为"mysite"的Django项目: django-admin startproject mysite 这将会在当前位置创建 ...
- Django之真正创建一个django项目
真正创建一个django项目 1 创建Django项目 :new-project 2 创建APP : python manager.py startapp app01 3 setting 配 ...
- 使用pycharm创建自己的第一个django项目
PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示.自动完成.单元测试.版本控制. ...
- 发布一个Django项目
一.部署环境准备,准备python3和虚拟环境解释器,virtualenvwrapper 1.修改python3的环境变量 PATH=/opt/python36/bin:/usr/local/sbin ...
- 初学者用pycharm创建一个django项目和一个app时需要注意的事项
如何新建一个djiango项目: 1.在pycharm中点击File,选择new project,点击djiango,在右面的Location中将untitile改为你的项目名,其余部分注意见下图: ...
- 基于centos7,python3.7新建第一个Django项目
为了能更好的了解到整个网站的服务情况,需要了解前端,后端之间的联系,这时候就得需要用到Django框架,基于Django自身带的模板,它可以更好的接收用户发出请求,接下来讲解一下新建第一个Django ...
随机推荐
- DataRow数组根据指定列排序
正序:DataRow[] datarow = datarow.OrderBy(x=>x["Ybrq"]).ToArray(); 倒序:DataRow[] datarow = ...
- 怎样使用ADO中的UpdateBatch方法(200分)
诸位: 我在使用ADO组件(ADOQuery.ADODataSet)的BatchUpdate模式时,系统竟不认识UpdateBatch.CancelBatch方法.这是怎么回事?我的运行环境是Win2 ...
- UVALive6443_Alien Abduction Again
题意为给你若干个三次函数,以及每一个函数所分布的区间,由于每个函数的所有的系数都是整数,所以最后的函数在整数点处的值也是整数. 现在每次可以插入函数或者询问区间,现在要求每次询问区间后,所有的函数在这 ...
- 拦截器的顺序是按照xml中的顺序执行的
- 【Java并发编程】之十一:线程间通信中notify通知的遗漏
notify通知的遗漏很容易理解,即threadA还没开始wait的时候,threadB已经notify了,这样,threadB通知是没有任何响应的,当threadB退出synchronized代码块 ...
- [BZOJ1559]密码 AC自动机+状压
问题 K: [JSOI2009]密码 时间限制: 1 Sec 内存限制: 64 MB 题目描述 众所周知,密码在信息领域起到了不可估量的作用.对于普通的登陆口令,唯一的破解 方法就是暴力破解一逐个尝 ...
- 【BZOJ4242】水壶(克鲁斯卡尔重构树,BFS)
[BZOJ4242]水壶(克鲁斯卡尔重构树,BFS) 题面 BZOJ然而是权限题. Description JOI君所居住的IOI市以一年四季都十分炎热著称. IOI市是一个被分成纵H*横W块区域的长 ...
- 【ARC075F】Mirror
Description 给定正整数\(D\),求有多少个正整数\(N\),满足\(rev(N)=N+D\). 其中\(rev(N)\)表示将\(N\)的十进制表示翻转来读得到的数(翻转后忽略前 ...
- 数字表格(product)
Description Solution 一开始的时候我是这么推的(\(f(n)\)表示斐波那契数列的第\(n\)项) \[ \begin{aligned} Ans&=\prod_{x=1}^ ...
- BZOJ.4034 [HAOI2015]树上操作 ( 点权树链剖分 线段树 )
BZOJ.4034 [HAOI2015]树上操作 ( 点权树链剖分 线段树 ) 题意分析 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 ...