Django之项目搭建和配置总结(一)

安装和创建虚拟环境

  • 参考:linux系统下Python虚拟环境的安装和使用

安装Django包

  • 先进入虚拟环境,在联网下执行:
pip install django==1.8.7
  • 1.8.7表示django的版本,如果不指定,会默认安装最新版的django。

  • 包会被安装到/usr/local/lib/python3.5/dist-packages下。

创建django项目

  • 进入虚拟环境,先创建一个文件用来存放项目,比如在桌面Desktop创建一个myprojects文件。
  • 进入myprojects文件,执行:
django-admin startproject 项目名称
例:
django-admin startproject mytest

会在文件下创建一个mytest的项目,其目录:
1135090-20171022232106615-2101051959.png

  • 目录说明:

    • manage.py:一个命令行工具,可以说Django项目就是从这个文件开始执行的。
    • _init _.py:一个空文件,表示mytest应该被看做一个python包;
    • settings.py:整个项目的配置参数文件;
    • urls.py:项目的URL声明,一般项目的顶级url正则匹配放置在这里;
    • wsgi.py:项目与WSGI兼容的Web服务器入口;

创建应用

  • 项目创建完成后需要有具体的应用,一个项目下可以有多个应用。

  • 进入命令行窗口:

python manage.py startapp 应用名称
例:
python manage.py startapp myapp
  • 创建后生成目录:
    1135090-20171022232134631-530140812.png

  • 文件:

    • admin.py: 模型注册和后台管理相关的文件;
    • __init__.py: 应用应该被看做一个Python包;
    • migrations: 用来放置应用模型的迁移脚本文件;
    • models.py: 定义模型;
    • test.py: 放置项目的测试文件;
    • viems.py: 定义视图;

添加应用

  • 由于项目管理着所有的应用,每个应用都要添加到项目的应用列表中;
  • 打开mytest/settings.py,INSTALLED_APPS下添加:

1135090-20171022232204959-1898790178.png

  • 前面有许多的应用都是Django自带的,包括后台管理、会话等;

  • 测试:验证添加是否成功。

    • 在终端启动django自带的测试用服务器:
python manage.py runserver ip:port
例:
python manage.py runserver

1135090-20171022232218209-1403842536.png

说明:ip和port可以分别设置服务器的ip和端口;省略不写默认ip为127.0.0.1;端口:8000;

  • 打开浏览器输入http://127.0.0.1:8000,得到网页:

1135090-20171022232236740-1458733285.png

注意:当项目文件发生修改时,服务器会自动重启,不需要手动。关闭服务器ctrl+C。

配置数据库

  • Django默认数据库sqlite3,其配置参数在mytest/setting.py文件下:

1135090-20171022232329381-512866165.png

  • 可以修改配置,换成需要连接的数据库:

以mysql为例,改成如下代码:

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'mytest',  # 数据库的名字'USER': 'root',   # 用户名'PASSWORD': 'mysql',  # 密码'HOST': 'localhost',  # 主机'PORT': '3306',  # 端口}
}

注意:这些参数默认数据库已经创建好,如果还没有数据库,需要登录mysql去创建。

  • 另外django连接mysql需要pymysql包的支持,所以先安装pymysql:
sudo pip install pymysql
  • 安装完毕,需要导入到django中,打开应用mytest/__init__.py文件,加入代码:
import pymysqlpymysql.install_as_MySQLdb()  # 与mysql交互的函数

注意:一定要记得导入pymysql,否则无法连接数据库。

配置模板

  • 直接在项目mytest文件夹下,创建名为templates的文件夹;
  • 在templates文件下创建与应用名字相同的文件夹myapp;
  • 这个应用的所有模板将放置在myapp文件夹下;
  • 将模板加入项目配置,在mytest/setting.py文件下:

1135090-20171022232348146-1194618255.png

至此:django项目开发配置基本完成。

额外说明:如果在pycharm集成环境下创建的django项目,设置了应用和模板后,pycharm会自动添加应用和模板,这两步无需再手动操作。

  • 作者:天宇之游
  • 出处:http://www.cnblogs.com/cwp-bg/
  • 本文版权归作者和博客园共有,欢迎转载、交流,但未经作者同意必须保留此段声明,且在文章明显位置给出原文链接。

转载于:https://www.cnblogs.com/cwp-bg/p/7712635.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467495.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java长连接例子_java实现长连接

();public Client(String serverIp, int port) {this.serverIpserverIp;this.portport;}public void start() throws UnknownHostException, IOException {if(running)return;socket new Socket(serverIp,port);System.out.println("本地端口:"socket.ge…

怎么把一个bool数组转成char?

这个是在知乎上看到的问题,分享给大家,如果有不同的答案,欢迎评论回复。知乎惯例谢邀人在厕所,刚刚蹲下因为最近都流行长文,但是作为日更而且更喜欢表达自己看法的我,力争文章是自己想发的,而且…

日本語勉強資源

ウェブ頁注音 http://www.hiragana.jp/ (看新闻学背单词容易多了)通訳 http://www.excite.co.jp (单词/句子/网页翻译)

mysql的高阶用法_MySQL的经典用法(十四)-高级优化

mysql的经典用法(十四)----高级优化基于/application/search/mysql/mysql-5.5.28/support-files/my-innodb-heavy-4G.cnf二次优化【删除--如果不使用主从同步】注释,去除无用日志文件# log-binmysql-bin# binlog_formatmixed【修改链接】# 最大链接值从100增加到512…

Kotlin——初级篇(二):变量、常量、注释

在Kotlin中的变量、常量以及注释多多少少和Java语言是有着不同之处的。不管是变量、常量的定义方式,还是注释的使用。下面详细的介绍Kotlin中的变量、常量、注释的使用。以及和Java的对比。 如果您还没有搭建环境和不了解Kotlin的,请看我的上一篇博文Kot…

java调用sql返回list_Spring JdbcTemplate实现有java.sql.ResultSet结果集返回的存储过程调用 | 学步园...

一、调用存储过程方式一:/*** 方法功能说明:通过存储过程分页,获取分页信息以及查询记录(装在list中);* List.get(0) hsTable; //存放分页信息(tableName/token/pageNo/pageSize/recordsCount/pagesCount)--hsTable.get(key)* Lis…

今天研究了一下关于Asp.net文件上传时的内存消耗问题

晕啊,写了半天,突然间所有的格式都没了,我不得不在写字板中重新排版,DuDu哥,你还是快捷键都去掉吧。 简单研究了一下如何解决Asp.net连续上传文件时对内存占用越来越多的问题。但目前只能解决一部份问题,要…

Linux系统编程-管道入门

晚上好,继续记录我的学习心得。当你厌倦了自己的目标时,怎样继续保持专注?误区:成功人士说的都是自己如何“满怀热情”去努力实现他们的目标。不管是在商业、体育还是艺术界,我们听到的都是“一切都归结于激情”或者“…

JavaScript 基础,登录前端验证

1、<script></script>的三种用法&#xff1a; 1.放在<body>中 2.放在<head>中 3.放在外部JS文件中 2、三种输出数据的方式&#xff1a; 1.使用 document.write() 方法将内容写到 HTML 文档中。 2.使用 window.alert() 弹出警告框。 3.使用 innerHTML 写…

Meta的用法

----------------------------------------------- ? 这就是meta标签的典型运用。meta标签有多少参数&#xff0c;有什么作用&#xff0c;为什么我们要特别重视它呢&#xff1f;让我们一起来发掘meta标签的奥妙! ? 根据HTML语言标准注释&#xff1a;meta标签是对网站发展非常…

iOS10 打开APP设置界面和WIFI界面

在iOS10以上&#xff0c;权限这块有了一些变化 首先在info的URL Types 添加 prefs 1、打开APP设置界面 //打开设置let url:NSURL NSURL(string: UIApplicationOpenSettingsURLString)!if UIApplication.shared.canOpenURL(url as URL){ UIApplication.shared.openURL(url as…

一种简单、实用的测量程序运行时间的方法

前言 平时我们可能很少去关注程序运行的时间&#xff0c;但是在一些情况下可能需要对程序进行一个整体的复盘、优化。那么&#xff0c;程序运行的时间就是一个可以考虑的方面&#xff0c;可以测一下某些代码块、函数、算法的运行时间&#xff0c;然后整体考虑看看有没有必要进行…

可以这样给DataGrid加个序号列。

先给DataGrid加个绑定列&#xff0c;该列设置页眉文本&#xff0c;但“数据字段”留空&#xff0c;然后在ItemDataBound事件中加入下面代码。 privatevoiddgScore_ItemDataBound(objectsender, System.Web.UI.WebControls.DataGridItemEventArgs e) { …

工作几天被裁员,难受

前两天&#xff0c;一个读者朋友私聊我说&#xff0c;自己被公司裁员了&#xff0c;这是他的第一份工作&#xff0c;只工作了不到半个月就收到了裁员信息。他非常不甘心&#xff0c;也非常恐慌&#xff0c;不甘心的是&#xff0c;自己觉得工作已经非常努力&#xff0c;也有做出…

C++17 inline静态变量,静态变量不用再类内定义类外初始化了

而在 C17 引入的标准中&#xff0c;你可以直接在类中定义并初始化类静态成员变量&#xff0c;并且这个表达式还是constexpr&#xff0c;从而可以在编译时进行求值&#xff0c;提供更好的优化。 例如&#xff1a; // MyClass.h class MyClass { public:inline static int myVa…

cad2017单段线_没想到啊,我平时用的CAD多段线有这么多学问

很多人都说&#xff0c;CAD用多段线来代替直线绘图会比较方便&#xff0c;因为多段线除了常规直线功能之外&#xff0c;也能画弧线&#xff0c;更重要的是&#xff0c;一次命令执行的线条为一个整体&#xff0c;操作方便。难道多段线PL仅仅只有这明面上的实力吗&#xff1f;当然…

找灵感

关于博客园首页设计&#xff0c;推荐大家到http://pages.blueidea.com/找灵感&#xff0c;几百种艺术设计方案...

一个超强的逆向分析软件

IDA 超强逆向分析工具先说下&#xff0c;想获取这个工具的同学&#xff0c;请在公众号后台回复 「逆向分析」获取下载链接。IDA Pro&#xff08;交互式反汇编其专业版&#xff0c;后续简称为IDA&#xff09;软件是由Hex-Rays SA公司发布&#xff0c;属于当前最炙手可热的一款世…

php的缓存机制,PHP缓存机制

在这里&#xff0c;我们通过一个代码示例进一步了解PHP自身的缓存机制&#xff0c;在今后的学习中&#xff0c;也会对缓存这个概念有一个大致的了解。使用php自身的缓存机制如果要测试php自己的缓存机制, 需要配置php.ini 文件display_errorsOnoutput_bufferingOfferror_report…

java 检索ldap,从LDAP(Java)检索信息

我正在尝试从LDAP服务器检索数据,但它失败了. (连接工程).我很难理解最后一行中search()方法需要哪些参数……“mail”是我想要获取的信息,userName是经过身份验证的用户.DirContext authContext new InitialDirContext(authEnv);SearchControls constraints new SearchContr…