设为首页 收藏本站
查看: 1050|回复: 0

[经验分享] Django入门(1)

[复制链接]

尚未签到

发表于 2017-11-20 18:55:19 | 显示全部楼层 |阅读模式
  18.1 建立项目
  建立项目时,首先要以规范的方式对项目进行描述,再建立虚拟环境,以便在其中创建项目
  1.1 制定规范
  完整的规范详细说明了项目的目标,功能,外观和用户界面。该项目规范如下:
  我们要编写一个名为‘学习笔记’的web应用程序,让用户能记录感兴趣的主题,并在学习每个主题的过程中添加日志条目。‘学习笔记’的主页对这个网站进行描述,并邀请用户注册或登录。用户登录后,就可以创建新主题、添加新条目以及阅读既有的条目。
  1.2 建立虚拟环境
  使用Django,首先建立一个虚拟环境。这对以后将‘学习笔记’部署到服务器上也是必须的。
  1.3 安装 virtualenv
  1.4 激活虚拟环境



l@ubuntu:~/Documents/lyb$ source bin/activate   #激活命令
(lyb) l@ubuntu:~/Documents/lyb$            #激活状态
deactivate                          #退出激活状态
  1.5 安装Django
  激活状态下:



pip install Django
  1.6 在Django中创建项目



(lyb) l@ubuntu:~/Documents$ django-admin.py startproject learning_log .
(lyb) l@ubuntu:~/Documents$ ls
learning_log  lyb  manage.py
(lyb) l@ubuntu:~/Documents$ ls learning_log
__init__.py  settings.py  urls.py  wsgi.py
(lyb) l@ubuntu:~/Documents$
  1.7 创建数据库



(lyb) l@ubuntu:~/Documents$ python manage.py migrate
Operations to perform:
   Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
   Applying contenttypes.0001_initial... OK
   Applying auth.0001_initial... OK
   Applying admin.0001_initial... OK
   Applying admin.0002_logentry_remove_auto_add... OK
   Applying contenttypes.0002_remove_content_type_name... OK
   Applying auth.0002_alter_permission_name_max_length... OK
   Applying auth.0003_alter_user_email_max_length... OK
   Applying auth.0004_alter_user_username_opts... OK
   Applying auth.0005_alter_user_last_login_null... OK
   Applying auth.0006_require_contenttypes_0002... OK
   Applying auth.0007_alter_validators_add_error_messages... OK
   Applying auth.0008_alter_user_username_max_length... OK
   Applying sessions.0001_initial... OK
(lyb) l@ubuntu:~/Documents$ ls
db.sqlite3  learning_log  lyb  manage.py
  1.8 查看项目



(lyb) l@ubuntu:~/Documents$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
November 04, 2017 - 16:13:50
Django version 1.11.7, using settings 'learning_log.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
  18.2 创建应用程序
  重新打开一个终端:



l@ubuntu:~/Documents$ source lyb/bin/activate
(lyb) l@ubuntu:~/Documents$ python manage.py startapp learning_logs
(lyb) l@ubuntu:~/Documents$ ls
db.sqlite3  learning_log  learning_logs  lyb  manage.py
(lyb) l@ubuntu:~/Documents$ ls learning_logs/
admin.py  apps.py  __init__.py  migrations  models.py  tests.py  views.py
(lyb) l@ubuntu:~/Documents$
  2.1 定义模型
  打开models.py,输入模型:



from django.db import models
# Create your models here.
class Topic(models.Model):
'''用户学习的主题'''
text = models.CharField(max_length=200)
date_added = models.DateTimeField(auto_now_add=True)
def __str__(self):
'返回模型的字符串表示
return self.text   
  2.2 激活模型
  打开/home/l/Documents/learning_log中的setting.py,在INSTALLED_APPS中添加 ‘learning_logs’
  继续命令行:



(lyb) l@ubuntu:~/Documents$ python manage.py makemigrations learning_logs
Migrations for 'learning_logs':
learning_logs/migrations/0001_initial.py
- Create model Topic
(lyb) l@ubuntu:~/Documents$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, learning_logs, sessions
Running migrations:
Applying learning_logs.0001_initial... OK
  每当需要修改‘学习笔记’管理的数据时,都采取如下三个步骤:修改models.py;对learning_logs调用makemigrations;让Django迁移项目。
  2.3 Django管理网站
  1 创建超级用户



(lyb) l@ubuntu:~/Documents$ python manage.py createsuperuser
Username (leave blank to use 'l'): lyb
Email address:
Password:
Password (again):
This password is too short. It must contain at least 8 characters.
Password:
Password (again):
Superuser created successfully.
  2. 向管理网站注册模型
  打开models.py所在目录中的admin.py,输入:



from django.contrib import admin
# Register your models here.
from learning_logs.models import Topic
admin.site.register(Topic)
  打开浏览器访问http://localhost:8000/admin/,输入超级用户名及密码后你会看到:
DSC0000.png

  3. 添加主题
  2.4 定义模型Entry
  models.py



class Entry(models.Model):
'''学到的有关某个主题的具体知识'''
topic = models.ForeignKey(Topic)
text = models.TextField()
date_added = models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name_plural = 'entries'
def __str__(self):
'返回模型的字符串表示'
return self.text[:50] + '...'
  2.5 迁移模型Entry



(lyb) l@ubuntu:~/Documents$ python manage.py makemigrations learning_logs
Migrations for 'learning_logs':
learning_logs/migrations/0002_entry.py
- Create model Entry
(lyb) l@ubuntu:~/Documents$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, learning_logs, sessions
Running migrations:
Applying learning_logs.0002_entry... OK
  2.6 向管理网站注册Entry
  admin.py



from django.contrib import admin
# Register your models here.
from learning_logs.models import Topic,Entry
admin.site.register(Topic)
admin.site.register(Entry)
  2.7 Django shell



(lyb) l@ubuntu:~/Documents$ python manage.py shell
Python 3.5.2 (default, Sep 14 2017, 22:51:06)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from learning_logs.models import Topic
>>> Topic.objects.all()
<QuerySet [<Topic: chess>, <Topic: Rock Clibing>]>     # QuerySet 查询集

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-408908-1-1.html 上篇帖子: mrpt安装 下篇帖子: vm虚拟机安装ubuntu
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表