python django web项目的构建步骤(一)

简介:

Django

一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。

1、安装好python django(这步略过,安装过程自行完成,网上安装步骤很多),安装的版本不同而生成的文件目录也不同,这里用的是1.6.5的版本的django;

1
2
[root@node3 ~] # django-admin.py --version
1.6.5

2、创建django项目

1
2
3
4
5
6
[root@node3 python] # django-admin.py startproject mysite2
[root@node3 python] # cd mysite2/
[root@node3 mysite2] # ll
total 8
-rwxr-xr-x. 1 root root  250 Jun  9 22:20 manage.py
drwxr-xr-x. 2 root root 4096 Jun  9 22:20 mysite2

以上的是1.6.5版本生成的一个manage.py和一个目录mysite2,如是1.3.7的版本的话生成的是以下的格式:

1
2
3
4
5
6
7
[root@node1 python] # cd mysite2/
[root@node1 mysite2] # ll
total 16
-rw-r--r--. 1 root root    0 Jun 10 10:19 __init__.py
-rw-r--r--. 1 root root  503 Jun 10 10:19 manage.py
-rw-r--r--. 1 root root 5203 Jun 10 10:19 settings.py
-rw-r--r--. 1 root root  568 Jun 10 10:19 urls.py

3、这里我们还是以1.6.5的版本为例说明问题,如果我们需要连接数据库,那我们需要去修改mysite2文件夹里的settings.py文件;

1
2
3
4
5
6
7
8
9
10
11
12
DATABASES = {
       'default' : {
           'ENGINE' 'django.db.backends.mysql' ,   # 需要连接什么数据库
           'NAME' 'mysite2' # 需要连接的数据库名
           'USERNAME' 'root' ,     # 连接数据库的用户名
           'PASSWORD' 'linux' ,    # 连接数据库的密码
           'PORT' '3306' ,         # 端口
       }
  }
我们还可以改一下时区和使用的语言
LANGUAGE_CODE =  'en-zh'    # 中文
TIME_ZONE =  'Asia/Shanghai'    # 亚洲,上海

4、之后就可以启动django了,切换到manage.py目录文件下,如不写0.0.0.0:8000(监听所有地址),那默认是监听127.0.0.1:8000这个套接字;

1
[root@node3 mysite2] # python manage.py runserver 0.0.0.0:8000

5、然后就可以在页面上访问了,用本机的地址加端口就可以访问:

1
http: //10 .17.1.151:8000/

wKioL1V37bySBlcSAAFK4H3r4GY139.jpg

################  以下是新建一个APP的简单设置步骤  ############

1、使用manage.py创建一个APP;

1
2
3
4
5
6
[root@node3 mysite2] # python manage.py startapp myapp
[root@node3 mysite2] # ll
total 12
-rwxr-xr-x. 1 root root  250 Jun  9 22:20 manage.py
drwxr-xr-x. 2 root root 4096 Jun 10 01:47 myapp
drwxr-xr-x. 2 root root 4096 Jun  9 23:29 mysite2

2、为了使 Django 认识到新应用程序的存在,还需要向 settings.py 文件中的 INSTALLED_APPS 添加一个条目。

1
2
3
4
5
6
7
8
9
INSTALLED_APPS = (
      'django.contrib.admin' ,
      'django.contrib.auth' ,
      'django.contrib.contenttypes' ,
      'django.contrib.sessions' ,
      'django.contrib.messages' ,
      'django.contrib.staticfiles' ,
      'myapp' ,  添加新建的app
  )

3、切换到myapp中,创建一个模型,也就是在moduls.py文件中新建一个类,做个类代表对应数据库中的一张表;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@node3 myapp] # vim models.py
from django.db  import  models
 
class Teacher(models.Model):
     name = models.CharField(max_length=30)
     gender = models.CharField(max_length=5)
     age = models.CharField(max_length=5)
     job = models.CharField(max_length=50)
 
     def __unicode__(self):
         return  "%s, %s, %s, %s"  % (self.name, self.gender, self.age, self.job)
 
class Student(models.Model):
     name = models.CharField(max_length=30)
     gender = models.CharField(max_length=5)
     age = models.CharField(max_length=5)
     course = models.CharField(max_length=50)
 
     def __unicode__(self):
         return  "%s, %s, %s, %s"  % (self.name, self.gender, self.age, self.course)

##  创建完所需要的表之后就可以使用下面命令进行数据库的同步了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@node3 mysite2] # python manage.py syncdb
Creating tables ...
Creating table django_admin_log
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table myapp_teacher
 
You just installed Django 's auth system, which means you don' t have any superusers defined.
Would you like to create one now? ( yes /no ):  yes
Username (leave blank to use  'root' ):  # admin的用户帐号
Email address: abc@ test .com
Password:  # 这个设置是登录admin是的登录密码
Password (again): 
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

##  登录mysql数据库就可以查看到生成的表了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
MariaDB [(none)]> use mysite2;
Database changed
MariaDB [mysite2]> show tables;
+----------------------------+
| Tables_in_mysite2          |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_session             |
| myapp_student              |    # 下面这两个是我们需创建的表student和teacher
| myapp_teacher              |
+----------------------------+
11 rows  in  set  (0.00 sec)
 
MariaDB [mysite2]> desc myapp_student;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
id      | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(30) | NO   |     | NULL    |                |
| gender | varchar(5)  | NO   |     | NULL    |                |
| age    | varchar(5)  | NO   |     | NULL    |                |
| course | varchar(50) | NO   |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+
5 rows  in  set  (0.10 sec)
 
MariaDB [mysite2]> desc myapp_teacher;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
id      | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(30) | NO   |     | NULL    |                |
| gender | varchar(5)  | NO   |     | NULL    |                |
| age    | varchar(5)  | NO   |     | NULL    |                |
| job    | varchar(50) | NO   |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+
5 rows  in  set  (0.00 sec)

4、到这里我们可以通过django的admin管理界面来添加,删除,修改表中的信息,即在myapp目录中的admin.py添加一个class类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@node3 myapp] # vim admin.py
from myapp.models  import  Student, Teacher
class TeacherAdmin(admin.ModelAdmin):
     list_display = (
         'name' ,
         'gender' ,
         'age' ,
         'job' ,
     )
 
class StudentAdmin(admin.ModelAdmin):
     list_display = (
         'name' ,
         'gender' ,
         'age' ,
         'course' ,
     )
 
admin.site.register(Student, StudentAdmin)
admin.site.register(Teacher, TeacherAdmin)

这个保存之后就可以在地址栏中输入http://10.17.1.151:8000/admin来访问到了,在这里就直接可以操作数据库表。

wKiom1V37R_DvAdBAAEkpLVSCdw452.jpgwKioL1V37xmC_TGgAAJcpReuEH4566.jpgwKioL1V37yzRew6xAAFZUWQTDx4261.jpg










本文转自 wei0164 51CTO博客,原文链接:http://blog.51cto.com/tanxw/1660453,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
前端开发 JavaScript 开发者
JavaScript:构建动态Web的核心力量
JavaScript:构建动态Web的核心力量
|
11月前
|
前端开发 算法 API
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
|
7月前
|
异构计算 Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
516 1
|
7月前
|
API 语音技术 开发者
Python 项目打包,并上传到 PyPI,分享项目
本文介绍了如何使用 Poetry 打包并发布一个 Python 项目至 PyPI。内容包括:项目创建、配置 `pyproject.toml` 文件、构建软件包、上传至 PyPI、安装与使用。通过实例 iGTTS 展示了从开发到发布的完整流程,帮助开发者快速分享自己的 Python 工具。
|
7月前
|
人工智能 Shell Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
303 0
|
10月前
|
监控 大数据 API
Python 技术员实践指南:从项目落地到技术优化
本内容涵盖Python开发的实战项目、技术攻关与工程化实践,包括自动化脚本(日志分析系统)和Web后端(轻量化API服务)两大项目类型。通过使用正则表达式、Flask框架等技术,解决日志分析效率低与API服务性能优化等问题。同时深入探讨内存泄漏排查、CPU瓶颈优化,并提供团队协作规范与代码审查流程。延伸至AI、大数据及DevOps领域,如商品推荐系统、PySpark数据处理和Airflow任务编排,助力开发者全面提升从编码到架构的能力,积累高并发与大数据场景下的实战经验。
Python 技术员实践指南:从项目落地到技术优化
|
10月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
10月前
|
Linux 数据库 数据安全/隐私保护
Python web Django快速入门手册全栈版,共2590字,短小精悍
本教程涵盖Django从安装到数据库模型创建的全流程。第一章介绍Windows、Linux及macOS下虚拟环境搭建与Django安装验证;第二章讲解项目创建、迁移与运行;第三章演示应用APP创建及项目汉化;第四章说明超级用户创建与后台登录;第五章深入数据库模型设计,包括类与表的对应关系及模型创建步骤。内容精炼实用,适合快速入门Django全栈开发。
511 1
|
6月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
538 4

推荐镜像

更多